MongoDB使用$ exists和$仍然返回没有字段的文档

时间:2018-04-17 21:42:03

标签: database mongodb

我有平面对象存储在mongo中,其中一个具有field00048属性,但我的查询仍然返回没有field00048的条目。有人能告诉我我的mongo查询有什么问题吗?我附上了下面数据库的图片以显示结构。

db.QA_Book_01.find({ 
    field00048: { $exists: true }},
    {
        $and:[
            { 'entryTypeId': 'Entry_Type_01' },
            { 'field00048': { $ne : 'Closed' }}]
    }).count();

在3条记录中,只有一条字段为“field00048”。当我将entryTypeId更改为Entry_Type_02时,它仍然使用字段'field00048'检索记录。不知道这里发生了什么。 enter image description here

1 个答案:

答案 0 :(得分:1)

默认情况下,MongoDB的查询查询中有一个和操作,因此在and查询中应用find操作的正确语法如下所述。

db.users.find( { $and: [ {field00048: { $exists: true }}, 
        { 'entryTypeId': 'Entry_Type_01' },
        { 'field00048': { $ne : 'Closed' }} ] } )