这个应该按月过滤结果的查询似乎工作正常。但我不知道如何添加年份过滤器。
db.collection.find({
"$expr": {
"$eq": [{ "$month": "$timestamp" }, 12]
}
});
我试图想出这样的东西,但没有成功。
db.collection.find({
"$expr": {
"$and": [
{ "$eq": [{ "$month": "$timestamp" }, 12] },
{ "$eq": [{ "$year": "$timestamp" }, 2018] }
]
}
});
如何正确地做到这一点?
最佳答案
我想使用 find 而不是聚合。添加另一个带有 $eq
的 $and
像这样对我有用。
db.collection.find({
$and: [
{ $expr: {$eq: [{$month: "$timestamp"}, 12]} },
{ $expr: {$eq: [{$year: "$timestamp"}, 2019]} }
]
});
关于javascript - MongoDB 查找具有多个 eq 的 expr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54328287/