ในการจับคู่ ใช้ $match ใน MongoDB และรับข้อมูลระหว่างวันที่สองวัน ให้ใช้ $gte และ $lte ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo560.insertOne({"value1":40,"value2":40,shippingDate:new ISODate("2020-02-26")});{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e867") } > db.demo560.insertOne({"value1":20,"value2":60,shippingDate:new ISODate("2020-02-26")});{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e868") } > db.demo560.insertOne({"value1":40,"value2":70,shippingDate:new ISODate("2020-03-31")});{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e869") } > db.demo560.insertOne({"value1":40,"value2":130,shippingDate:new ISODate("2020-03-31")});{ "acknowledged" : true, "insertedId" : ObjectId("5e8f3d5254b4472ed3e8e86a") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo560.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e8f3d5254b4472ed3e8e867"), "value1" : 40, "value2" : 40, "shippingDate" : ISODate("2020-02-26T00:00:00Z") } { "_id" : ObjectId("5e8f3d5254b4472ed3e8e868"), "value1" : 20, "value2" : 60, "shippingDate" : ISODate("2020-02-26T00:00:00Z") } { "_id" : ObjectId("5e8f3d5254b4472ed3e8e869"), "value1" : 40, "value2" : 70, "shippingDate" : ISODate("2020-03-31T00:00:00Z") } { "_id" : ObjectId("5e8f3d5254b4472ed3e8e86a"), "value1" : 40, "value2" : 130, "shippingDate" : ISODate("2020-03-31T00:00:00Z") }
ต่อไปนี้เป็นแบบสอบถามเพื่อดึงข้อมูลระหว่างวันที่สองวันและด้วยค่าเฉพาะ ในที่นี้ value1 40 คือค่าเฉพาะของเรา -
> db.demo560.aggregate([ ... { ... $match: { ... "value1": 40, ... "shippingDate": { ... "$gte": ISODate("2020-02-26"), ... "$lte": ISODate("2020-03-31") ... } ... } ... }, ... { ... $group: { ... "_id": "$shippingDate", ... total: { ... $sum: '$value2' ... }, ... count: { ... $sum: 1 ... } ... } ... } ... ])
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ISODate("2020-03-31T00:00:00Z"), "total" : 200, "count" : 2 } { "_id" : ISODate("2020-02-26T00:00:00Z"), "total" : 40, "count" : 1 }