【发布时间】:2013-06-05 18:20:46
【问题描述】:
是否有一种有效的方法来查找 Mongo 集合中至少有一个嵌入对象缺少给定字段的所有文档?
我正在尝试:
Response.where('answers.question_id' => nil)
但是,这只会返回每个答案都缺少 question_id 的响应,而不是包含至少一个缺少 question_id 的答案的响应。
我可以循环测试每个响应,但这对于我正在使用的数据库的大小来说非常慢,所以我很想找到一种方法来构建查询以缩小响应列表。
编辑:
Response.where(:'answers.question_id'.exists => false)
仍然没有解决我的问题 - 它仍然只找到 所有 个嵌入式答案都缺少 question_id 的响应,而不是 任何 个嵌入式答案都缺少 question_id 的响应。
【问题讨论】:
-
有一个FAQ entry。
-
@jimoleary - 谢谢,但这是用于查找具有空字段的文档,而不是包含至少一个具有空字段的嵌入对象的文档
-
对不起,我最初的回答有点简洁!查看 FAQ 条目末尾的 $exists 运算符的描述。它描述了如何查找缺失的字段。