1

有没有一种有效的方法来查找 Mongo 集合的所有文档,其中至少有一个嵌入对象缺少给定字段?

我正在努力:

Response.where('answers.question_id' => nil)

但是,这只返回每个答案都缺少 question_id 的响应,而不是包含至少一个缺少 question_id 的答案的响应。

我可以循环测试每个响应,但这对于我正在使用的数据库的大小来说非常慢,所以我很想找到一种方法来构建查询以缩小响应列表。

编辑:

Response.where(:'answers.question_id'.exists => false)

仍然没有解决我的问题 - 它仍然只找到所有嵌入式答案都缺少 question_id 的响应,而不是任何嵌入式答案都缺少 question_id 的响应。

4

1 回答 1

1

您是否尝试过以下任一方法?

Response.where(:answers => { "$elemMatch" => { :"answer_id".exists => false }})
Response.where(:answers.elem_match => { :answer_id.exists => false})
于 2013-06-07T09:33:07.560 回答