转换为字段值并在投影期间创建月份中的日期时间的 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 }
广告