अध्याय 3: MongoDB - शर्ती क्वेरी
इस अध्याय में MongoDB की शर्ती क्वेरी का परिचय है, जो SQL के बराबर है जैसे कि बराबर, अधिक, और कम तुलना ऑपरेटर्स।
MongoDB द्वारा समर्थित शर्ती ऑपरेटर्स
| ऑपरेटर | विवरण |
|---|---|
| $eq | बराबर, SQL के = ऑपरेटर के समान |
| $gt | अधिक, SQL के > ऑपरेटर के समान |
| $gte | इससे बड़ा या बराबर, SQL के >= ऑपरेटर के समान |
| $in | एक ऐरे में मेल खाता है, किसी भी मान को, SQL के in क्वेरी के समान |
| $lt | कम, SQL के < ऑपरेटर के समान |
| $nin | ऐरे में किसी भी मान से मेल नहीं खाता, SQL के not in ऑपरेटर के समान |
परीक्षण डेटा
इन्वेंटरी कलेक्शन डेटा निम्नलिखित है
{ _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
{ _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
{ _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
{ _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] }
{ _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }
$eq (बराबर मिलान)
db.inventory.find( { qty: { $eq: 20 } } )
db.inventory.find( { "item.name": { $eq: "ab" } } )
// संक्षेपित, $eq ऑपरेटर को नजरअंदाज किया जा सकता है, qty = 20
db.inventory.find( { qty: 20 } )
समान SQL:
select * from inventory where qty = 20
// यह सिर्फ़ एक उदाहरण है, SQL नेस्टेड फ़ील्ड के प्रारूप का समर्थन नहीं करता है जैसे कि item.name
select * from inventory where item.name = 20
$gt (से अधिक)
db.inventory.find( { qty: { $gt: 20 } } )
समान SQL:
select * from inventory where qty > 20
$gte (से अधिक या बराबर)
db.inventory.find( { qty: { $gte: 20 } } )
समान SQL:
select * from inventory where qty >= 20
$in
ऐरे में एक मान मिलाता है
db.inventory.find( { qty: { $in: [ 5, 15 ] } } )
समान SQL:
select * from inventory where qty in (5, 15)
$nin
$in ऑपरेटर के विपरीत
db.inventory.find( { qty: { $nin: [ 5, 15 ] } } )
समान SQL:
select * from inventory where qty not in (5, 15)
$lt (से कम)
db.inventory.find( { qty: { $lt: 20 } } )
समान SQL:
select * from inventory where qty < 20