ในการแปลงค่าที่ยื่นเพื่อสร้างวันที่และเวลาของเดือน ให้ใช้ MongoDB aggregate() ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo209.insertOne( ... { ... "_id" : "101", ... "details" : [ ... { ... "dat" : 1528929908, ... "Name" : "Chris" ... }, ... { ... "dat" : 1529082069, ... "Name":"Carol" ... } ... ], ... "Age" : 25, ... "CountryName" : "US" ... } ...); { "acknowledged" : true, "insertedId" : "101" }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo209.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : "101", "details" : [ { "dat" : 1528929908, "Name" : "Chris" }, { "dat" : 1529082069, "Name" : "Carol" } ], "Age" : 25, "CountryName" : "US" }
ต่อไปนี้เป็นแบบสอบถามเพื่อแปลงค่าฟิลด์และสร้างวันเวลาของเดือนในระหว่างการฉาย -
> db.demo209.aggregate({ ... "$unwind": "$details" ... }, { ... "$project": { ... "Age": 1, ... "CountryName": 1, ... "Name": "$details.Name", ... "DayOfMonth": { ... "$dayOfMonth": { ... "$add": [new Date(0), { ... "$multiply": ["$details.dat", 1000] ... }] ... } ... } ... } ...})
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : "101", "Age" : 25, "CountryName" : "US", "Name" : "Chris", "DayOfMonth" : 13 } { "_id" : "101", "Age" : 25, "CountryName" : "US", "Name" : "Carol", "DayOfMonth" : 15 }