如何检查该字段是否存在以及是否存在,请在mongodb $ in中获取其值?

时间:2019-10-23 10:29:53

标签: mongodb nosql mongodb-query

我有以下查询

db.getCollection('DOCUMENT1').find(                                     
{"FIELD1":           
    {                                                                   
            "$in":[
1234567,
7654321
            ]
    }
}       , "$and": [{
            "FIELD2" : { $exists : true }
    }] 
        ,{"FIELD1" : 1, "FIELD2" : 1} )

执行上述查询时,出现以下错误:

错误:第9行:意外的令牌:

我仅获得与“ Field1”匹配的文档。使用$ in,从获得的文档中,我要检查是否存在另一个字段(FIELD2),如果存在,则要显示该字段的值。我该如何实现?

1 个答案:

答案 0 :(得分:1)

应该是这样的:

db.getCollection('YourCollectionName').find({$and :[{field1: {$in:[1234567, 7654321]}},{field2:{$exists: true}}]},
{field1:1, field2:1, _id:0})

您的查询存在语法错误,并且$and是一个包含多个过滤器的数组,必须使用它代替.find()的filterQuery。 例如:- .find(filterQuery, projectQuery)