अध्याय 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