Bu bölüm, mongo kabuğu aracılığıyla MongoDB'nin temel sorgu sözdizimini tanıtıyor. Mongo kabuğunda, veri sorgulamak için db.collection.find()
yöntemi kullanılır.
Test verilerini hazırla
Envanter koleksiyonuna birkaç veri parçası ekleyin.
db.inventory.insertMany([
{ item: "defter", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "not defteri", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "kağıt", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planlayıcı", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "kartpostal", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
Tüm belgeleri sorgula
Envanter koleksiyonundaki tüm belgeleri sorgula, {} boş sorgu koşulunu temsil eder.
db.inventory.find( {} )
Benzer şekilde aşağıdaki SQL ifadesine benzer:
SELECT * FROM inventory
Eşitlik sorgusu koşulları
Sözdizimi:
{ alan: değer, ... }
Örnek 1:
db.inventory.find( { status: "D" } )
Aşağıdaki SQL ifadesine benzer:
SELECT * FROM inventory WHERE status = "D"
Örnek 2: İç içe geçmiş alan sorgusu, iç içe geçmiş belgelerin alanlarını bir nokta (.) ile birleştirmek için kullanılır.
db.inventory.find( { "size.uom": "in" } )
Aşağıdaki SQL ifadesine benzer:
SELECT * FROM inventory WHERE size.uom = "in"
Not: MongoDB belgeleri JSON formatında depolandığından, iç içe geçmiş alanları sorgu koşulları olarak kullanabilirler.
Sorgu operatörleri kullanma
MongoDB çeşitli sorgu operatörlerini destekleyerek çeşitli karmaşık sorguları uygulamayı sağlar. Sözdizimi:
{ <alan1>: { <operatör1>: <değer1> }, ... }
Açıklama:
- alan1: alan adı
- operatör1: operatör
- değer1: operatör parametresi
$in operatörü örneği:
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
Aşağıdaki "in" operatörü ile yapılan SQL sorgusu ile benzer:
SELECT * FROM inventory WHERE status in ("A", "D")
Not: Operatörlerle ilgili ayrıntılar için lütfen sonraki MongoDB sorgu detayları bölümüne bakınız.
ve koşulu
SQL'ye benzer şekilde, MongoDB de ve koşulunu destekler.
Örnek:
// Ardışık olarak birden fazla koşul girin ve koşulları and kullanarak bağlayın
db.inventory.find( { status: "A", item: "kartpostal"} )
Aşağıdaki SQL ifadesine benzer:
SELECT * FROM inventory WHERE status = "A" AND item = "kartpostal"
veya koşulu
SQL'ye benzer şekilde, MongoDB de $or operatörü aracılığıyla veya koşulunu destekler.
Sözdizimi:
{
$or: [
{koşul1},
{koşul2},
.....
]
}
Örnek:
db.inventory.find( { $or: [ { status: "A" }, { item: "kartpostal"} ] } )
Aşağıdaki SQL ifadesine benzer:
SELECT * FROM inventory WHERE status = "A" OR item = "kartpostal"
ve ve veya koşullarını birleştirme
SQL'ye benzer şekilde, MongoDB ve ve veya koşullarını birleştirerek karmaşık sorgu koşulları oluşturabilir.
Örnek:
db.inventory.find( {
status: "A",
$or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )
Burada $lt operatörü küçük olanlar için ve düzenli ifade eşleştirmesi için kullanılmıştır.
Bu, aşağıdaki SQL ifadesine benzer:
SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 or item like 'p%')
İpucu: MongoDB sorgu koşullarının detaylı açıklaması için lütfen sonraki bölümlere bakınız.