باب 3: MongoDB - شرائطی کوئیری
اس باب میں MongoDB کی شرائطی کوئیری کا تعارف ہے، جو SQL کے ایکسیں(=)، بڑا ہے(>)، اور چھوٹا ہے(<) جیسے موازنہ اوپریٹرز کے برابر ہے۔
مونگو ڈی بی کی حمایت کردہ شرائطی اوپریٹرز
اوپریٹر | تفصیل |
---|---|
$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