我有一个mongoDB聚合,当我在MongoDB 4.0上尝试该聚合时效果很好,但是现在我需要在MongoDB 3.4上使用它,但它不起作用,我找不到原因。我只认为该错误发生在$ project阶段。
这是聚合查询:
{
"aggregate": true,
"pipeline": [
{
"$match": {
"field": {
"$exists": true
},
"field.objects": {
"$exists": true,
"$ne": []
},
"created_at": {
"$gte": {
"sec": 1551398400,
"usec": 0
},
"$lte": {
"sec": 1554076799,
"usec": 0
}
}
}
},
{
"$unwind": "$field.objects"
},
{
"$lookup": {
"from": "Object",
"localField": "field.objects.id",
"foreignField": "_id",
"as": "objects"
}
},
{
"$match": { // Some match clauses here
}
},
{
"$group": {
"_id": "$_id"
}
},
{
"$project": {
"year": {
"$year": "$created_at"
},
"month": {
"$month": "$created_at"
}
}
},
{
"$group": {
"_id": {
"date": {
"$concat": [
{
"$substr": [
"$year",
0,
4
]
},
"-",
{
"$cond": [
{
"$lte": [
"$month",
9
]
},
{
"$concat": [
"0",
{
"$substr": [
"$month",
0,
2
]
}
]
},
{
"$substr": [
"$month",
0,
2
]
}
]
},
"-01"
]
}
},
"total": {
"$sum": 1
}
}
}
],
"options": {
"cursor": true
},
"db": "db",
"collection": "Collection"
}
因此,在MongoDB 4.0中,我得到了正确的结果,但是MongoDB 3.4抛出以下错误:can't convert from BSON type missing to Date
。我看了一下变更日志,但什么也没找到。