在数组中查找item._id为空的项目

时间:2016-03-30 19:44:00

标签: arrays mongodb mongodb-query

我有一个包含数组的MongoDB文档,其中每个元素应该具有非空的_id。如何识别_id存在但为空的数组元素?我有一些像这样的记录:

{
    "_id" : ObjectId("123456789012345678912345"),
    "questions" : [
        {
            "_id" : {

            },
            ...
        },
        ...
    ]
}

问题本身有一个空的_id。我尝试了以下查询,这些查询都没有返回任何结果:

 db.topics.find({ 'questions.$._id': {} })
 db.topics.find({ 'questions.$._id': '' })

2 个答案:

答案 0 :(得分:2)

听起来您想检查_idquestions字段的值是否存在,因此您可以使用$in运算符,如下所示:

db.topics.find({"questions._id": { $in: [null, {}, ""] }})

这将找到_idnull,空对象{}或空字符串""的任何记录。

答案 1 :(得分:1)

您不需要位置$运算符。

db.topics.find({ "questions._id": {} })