mongodb查找包含数据字段的文档并不存在

时间:2014-10-29 17:56:47

标签: mongodb

我有mongodb文件,如

    {
    "_id" : ObjectId("543d563bde1e58511c264340"),
    ...some fields ...
    "pref" : [ 
        {
            "user_id" : 1,
            "value" : 0.56
        }
    ]
}

如何查找pref不包含user_id :1 条目的所有文档?

1 个答案:

答案 0 :(得分:2)

有点不清楚你在这里寻找什么。如果您要查找user_id除了' 1'之外还有其他值的所有条目,那么您需要:

db.collection.find({"pref.user_id": {'$ne': 1}})

如果您正在查找' user_id'字段根本不存在:

db.collection.find({"pref.user_id": {'$exists': 0}})

请记住,虽然这两个查询在嵌套数组上的行为。你真正想要获得的是所有文件,其中任何的对象都在' pref'数组匹配指定的条件。