gpt4 book ai didi

node.js - MongoDB 按月和年查找过滤器

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:45 24 4
gpt4 key购买 nike

此查询适用于过滤 12/2018 帖子..

db.collection.find({
"$expr": {
"$eq": [{ "$year": "$timestamp" }, 2018],
"$eq": [{ "$month": "$timestamp" }, 12]
}
});

但如果我颠倒年份和月份,那么它会显示 2018 年的所有帖子。

db.collection.find({
"$expr": {
"$eq": [{ "$month": "$timestamp" }, 12],
"$eq": [{ "$year": "$timestamp" }, 2018]
}
});

这是为什么呢?我无法理解。

最佳答案

JavaScript 对象不能有多个同名键,但您在此处使用了 $eq 键两次,因此仅使用了第二个键。

相反,使用 $and 组合两个表达式:

db.collection.find({
"$expr": {
"$and": [
{"$eq": [{ "$year": "$timestamp" }, 2018]},
{"$eq": [{ "$month": "$timestamp" }, 12]}
]
}
});

关于node.js - MongoDB 按月和年查找过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com