Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

แบบสอบถาม MongoDB เพื่อดึงองค์ประกอบระหว่างช่วงโดยไม่รวมตัวเลขที่ใช้ตั้งค่าช่วง?


สมมติว่าทั้งตัวเลขคือ 50 และ 60 คุณสามารถใช้ไวยากรณ์ด้านล่างได้ −

db.yourCollectionName.find({yourFieldName: { $gt : 50 , $lt : 60 } } );

หากคุณต้องการรวม 50 และ 60 ด้วย ให้ใช้ไวยากรณ์ด้านล่าง -

db.yourCollectionName.find({yourFieldName: { $gte : 50 , $lte : 60 } } );

ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.returnEverythingBetween50And60.insertOne({"Amount":55});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c42eedc6604c74817cdb")
}
> db.returnEverythingBetween50And60.insertOne({"Amount":45});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c432edc6604c74817cdc")
}
> db.returnEverythingBetween50And60.insertOne({"Amount":50});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c436edc6604c74817cdd")
}
> db.returnEverythingBetween50And60.insertOne({"Amount":59});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c43aedc6604c74817cde")
}
> db.returnEverythingBetween50And60.insertOne({"Amount":60});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c43eedc6604c74817cdf")
}
> db.returnEverythingBetween50And60.insertOne({"Amount":49});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c442edc6604c74817ce0")
}
> db.returnEverythingBetween50And60.insertOne({"Amount":71});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c445edc6604c74817ce1")
}

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

> db.returnEverythingBetween50And60.find().pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5cd3c42eedc6604c74817cdb"), "Amount" : 55 }
{ "_id" : ObjectId("5cd3c432edc6604c74817cdc"), "Amount" : 45 }
{ "_id" : ObjectId("5cd3c436edc6604c74817cdd"), "Amount" : 50 }
{ "_id" : ObjectId("5cd3c43aedc6604c74817cde"), "Amount" : 59 }
{ "_id" : ObjectId("5cd3c43eedc6604c74817cdf"), "Amount" : 60 }
{ "_id" : ObjectId("5cd3c442edc6604c74817ce0"), "Amount" : 49 }
{ "_id" : ObjectId("5cd3c445edc6604c74817ce1"), "Amount" : 71 }

ต่อไปนี้เป็นแบบสอบถามเพื่อส่งคืนทุกอย่างระหว่าง 50 ถึง 60 โดยไม่รวมตัวเลขทั้งสองนี้ -

> db.returnEverythingBetween50And60.find({Amount: { $gt : 50 , $lt : 60 } } );

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5cd3c42eedc6604c74817cdb"), "Amount" : 55 }
{ "_id" : ObjectId("5cd3c43aedc6604c74817cde"), "Amount" : 59 }