当前位置:  开发笔记 > 编程语言 > 正文

使用mongomapper在Array字段中查找包含元素的文档?

如何解决《使用mongomapper在Array字段中查找包含元素的文档?》经验,为你挑选了1个好方法。

我是mongodb/mongomapper的新手,无法找到答案.

我有一个mongomapper类,包含以下字段

key :author_id, Integer
key :partecipant_ids, Array

假设我有一个具有以下属性的"记录":

{ :author_id => 10, :partecipant_ids => [10,15,201] }

我想要检索涉及id为15的partecipant的所有对象.我没有在文档中找到任何提及.

奇怪的是,以前我在做这个查询

MessageThread.where :partecipant_ids => [15]

哪个工作,但在(或许)宝石/ mongodb版本的一些变化后它停止工作.不幸的是,我不知道我之前使用过哪个版本的mongodb和mongomapper.



1> Brian Hempel..:

在当前版本的MongoMapper中,这将起作用:

MessageThread.where(:partecipant_ids => 15)

这应该也有效......

MessageThread.where(:partecipant_ids => [15])

...因为勇敢的自动扩展到:

MessageThread.where(:partecipant_ids => { :$in => [15] })

(见https://github.com/jnunemaker/plucky/blob/master/lib/plucky/criteria_hash.rb#L121)

我要说看看你的数据并在Mongo控制台中尝试查询,以确保你有一个有效的查询.MongoDB查询直接转换为MM查询,除了上述(以及其他一些小的)警告.见http://www.mongodb.org/display/DOCS/Querying

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有