我有一个包含以下文件的产品系列:
{ "_id" : 1, "item" : "abc", created: ISODate("2014-10-01T08:12:00Z") }
{ "_id" : 2, "item" : "jkl", created: ISODate("2014-10-02T09:13:00Z") }
{ "_id" : 3, "item" : "hjk", created: ISODate("2014-10-02T09:18:00Z") }
{ "_id" : 4, "item" : "sdf", created: ISODate("2014-10-07T09:14:00Z") }
{ "_id" : 5, "item" : "xyz", created: ISODate("2014-10-15T09:15:00Z") }
{ "_id" : 6, "item" : "iop", created: ISODate("2014-10-16T09:15:00Z") }
Run Code Online (Sandbox Code Playgroud)
我想绘制一个描述产品数量的图表,所以我使用mongodb聚合框架按天计算产品组:
var proj1 = {
"$project": {
"created": 1,
"_id": 0,
"h": {"$hour": "$created"},
"m": {"$minute": "$created"},
"s": {"$second": …Run Code Online (Sandbox Code Playgroud) 我正在尝试聚合我的 MongoDB 集合。我需要返回一个查询,其中包含集合中日期在$min和日期之间的所有对象。$max每个插入日期总会有一个插入,但并非所有日期都会插入一个对象。
我收藏的其中一件物品是:
{
"_id" : ObjectId("5c8254098341a325bc160d12"),
"date" : ISODate("2016-05-18T16:00:00.000+0000"),
"ticker" : "abc123"
}
Run Code Online (Sandbox Code Playgroud)
对于没有任何记录的日期,我们应该返回:
{
"_id" : ObjectId("5c8254098341a325bc160d12"),
"date" : ISODate("2016-05-20T16:00:00.000+0000"), // This is a missing date
"ticker" : "abc123"
}
Run Code Online (Sandbox Code Playgroud)
我已经看过这些主题[1] [2]但我不知道如何$map为我的案例实现。
db.movs.aggregate(
[
{
$group: {
_id: "$data",
ticker: { $first: "$ticker" },
}
},
{
$project: {
"date_2" : {
"$map": {
}
}
}
},
]
);
Run Code Online (Sandbox Code Playgroud)