ในการใช้ $dateToString กับรายการอาร์เรย์ ให้ใช้ aggregate() ใน MongoDB ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo104.insertOne( ... { ... ... "AppName" : "Online Book", ... "Details" : [ ... { ... "ClientName" : "Chris", ... "Deadline" : new ISODate("2020-03-10") ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e2ed7fd9fd5fd66da21446f") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo104.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e2ed7fd9fd5fd66da21446f"), "AppName" : "Online Book", "Details" : [ { "ClientName" : "Chris", "Deadline" : ISODate("2020-03-10T00:00:00Z") } ] }
ต่อไปนี้เป็นแบบสอบถามเพื่อใช้ $dateToString กับรายการอาร์เรย์ -
> db.demo104.aggregate([ ... { "$match": {}}, ... { "$project": { ... "title": 1, ... "Details": { ... "$map": { ... "input": "$Details", ... "as": "out", ... "in": { ... "ClientName": "$$out.ClientName", ... "Deadline": { ... "$dateToString": { "format": "%m", "date": "$$out.Deadline" } ... } ... } ... } ... } ... }} ... ])
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e2ed7fd9fd5fd66da21446f"), "Details" : [ { "ClientName" : "Chris", "Deadline" : "03" } ] }