考虑这两个不同的MongoDB查询:
$ match 中的db.myCollection.aggregate([{
"$match": {
"code": "2",
"startDate": {
"$lt": ISODate("2017-01-31T23:59:59.999Z")
},
}
},
{
"$group": {
"_id": {
"code": "$code"
},
"count": {
"$sum": 1
}
}
}
]);
结果:
{
"_id" : {
"code" : "2"
},
"count" : 4844.0
}
$ cond 中的db.myCollection.aggregate([{
"$match": {
"code": "2"
}
},
{
"$project": {
"code": "$code",
"count": {
"$cond": [{
"$lt": ["$startDate", ISODate('2017-01-31T23:59:59.999Z')]
}, 1, 0]
}
}
}
}, {
"$group": {
"_id": {
"code": "$code"
},
"count": {
"$sum": "$count"
}
}
}])
结果:
{
"_id" : {
"code" : "2"
},
"count" : 4935.0
}
我不明白为什么第二个查询会给我更多文件。在我看来,这些查询必须给我一个相同的结果......我使用" $ cond"以错误的方式?什么可能导致这种差异?