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.