轉換為欄位值並在投影期間建立月份中的日期時間的 MongoDB 查詢?
要將 filed 值轉換為建立月份中的日期時間,請使用 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" }
以下是查詢,可在投影期間轉換 field 值並建立 datetime 日 -
> 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 }
廣告