【问题标题】:how to match both fields are not exist如何匹配两个字段都不存在
【发布时间】:2020-12-28 03:52:13
【问题描述】:
- 我试图用
$and 表示两个字段都是空的
- 这里是代码
db.tweets_v2.aggregate({
{match:{$and:[{replyto_id:$exist:false},{replyto_id:$exist:false}]}
});
【问题讨论】:
标签:
mongodb
mongodb-query
mongodb-shell
【解决方案1】:
其实$and 是不需要的,这个也可以:
db.tweets_v2.aggregate([
{
$match: {
replyto_id: { $exists: false } ,
replyfrom_id: { $exists: false }
}
}
])
【解决方案2】:
修复很少,
- $exist 应该是
$exists
-
$exists 前后缺少 {} 括号
- 匹配应该是
$match
- 聚合阶段从
[] 开始,而不是{}
db.tweets_v2.aggregate([
{
$match: {
$and: [
{ replyto_id: { $exists: false } },
{ replyfrom_id: { $exists: false } } // change your second field name
]
}
}
])
Playground