我有一个包含数组的MongoDB文档,其中每个元素应该具有非空的_id。如何识别_id存在但为空的数组元素?我有一些像这样的记录:
{
"_id" : ObjectId("123456789012345678912345"),
"questions" : [
{
"_id" : {
},
...
},
...
]
}
问题本身有一个空的_id。我尝试了以下查询,这些查询都没有返回任何结果:
db.topics.find({ 'questions.$._id': {} })
db.topics.find({ 'questions.$._id': '' })
答案 0 :(得分:2)
听起来您想检查_id
中questions
字段的值是否存在,因此您可以使用$in
运算符,如下所示:
db.topics.find({"questions._id": { $in: [null, {}, ""] }})
这将找到_id
为null
,空对象{}
或空字符串""
的任何记录。
答案 1 :(得分:1)
您不需要位置$
运算符。
db.topics.find({ "questions._id": {} })