mongoid-查询嵌入式文档

我怀疑
class Foo
  include Mongoid::Document
  field :name, type: String
  embeds_many :bars
end

class Bar
  include Mongoid::Document
  field :name, type: String
  embedded_in :foo
end

有没有一种方法可以在bars这里查询所有内容在AR中,我会做类似的事情Bar.where(name: 'something')-只要给我所有符合某些条件的标尺即可。

就目前而言,我只能查询单个foo上的特定栏。`Foo.first.bars.where(name:'something')。我知道mongoDB没有联接,所以...我很好奇该怎么做。

我准备将Foo全部丢掉,并做类似的事情:

class Bar
  include Mongoid::Document
  field :foo_name, type: String
  field :name, type: String
end
诺特

您必须Bar先返回Foo嵌入对象的对象才能返回对象

您可以查询顶级文档(Foo)作为嵌入式文档的匹配项。

foo = Foo.create(:name => 'foo1')
foo.bars << Bar.new(:name => 'bar1')

Foo.where(:'bars.name' => 'bar1').first
=> #<Foo _id: 53c4a380626e6f813d000000, name: "foo1">

然后,一旦找到与某些嵌入式栏匹配的Foos,就可以通过另一个查询找到所需的栏(该查询仅映射到一个Array#findArray#select

foo.bars << Bar.new(:name => 'bar2')
Foo.where(:'bars.name' => 'bar1').first.bars.where(:name => 'bar2').first
=> #<Bar _id: 53c4a380626e6f813d000001, name: "bar2">

更新:如果要从父文档上下文中查询嵌入式文档,建议不要使用嵌入式文档。嵌入文档时,您说的是“我不希望文档独立存在”。如果您直接查询,则放弃嵌入。嵌入是很诱人的,但是通常您不需要/不需要它。

注意:我已经取消嵌入100M +条目,这是一个漫长的繁忙过程。

注意2:嵌入某些元数据或聚合是在您真正需要时最好保留的优化

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongoid:基于嵌入式文档数组的大小查询

来自分类Dev

Mongoid嵌套嵌入式文档保存忽略查询

来自分类Dev

Mongoid在单个查询中推送新的嵌入式文档

来自分类Dev

Mongoid嵌入式文档属于_嵌入式文档

来自分类Dev

Rails 4 MongoID嵌入式文档

来自分类Dev

如何测试Mongoid的嵌入式文档?

来自分类Dev

多个嵌入式文档的Mongoid分组

来自分类Dev

如何在Rails和Mongoid中查询嵌入式文档

来自分类Dev

Mongoid嵌入式文档属具_到嵌入式文档

来自分类Dev

Mongoid在父内部创建嵌入式文档

来自分类Dev

Mongoid嵌入式集合对:find的响应

来自分类Dev

Mongoid嵌入式集合对:find的响应

来自分类Dev

具有嵌入式文档的文档的Mongoid Rails更新错误

来自分类Dev

如何在Mongoid中找到字段值为nil的嵌入式文档?

来自分类Dev

Rails Mongoid:查询嵌入文档并访问 Mongoid 条件

来自分类Dev

Mongoid查询文档

来自分类Dev

Mongoid查询文档

来自分类Dev

mongoid无法更新嵌入式集合的正确对象

来自分类Dev

Mongoid嵌入式关系扩展中的父对象

来自分类Dev

使用嵌入式哈希查找或创建Mongoid

来自分类Dev

Mongoid嵌入式模型索引不起作用

来自分类Dev

使用嵌入式哈希查找或创建Mongoid

来自分类Dev

Mongoid无法保存嵌入的文档

来自分类Dev

Mongoid 删除未保存的嵌入文档

来自分类Dev

mongoengine查询嵌入式文档列表

来自分类Dev

Mongo嵌入式文档字段查询

来自分类Dev

查询MongoDB中的嵌入式文档

来自分类Dev

春季查询嵌入式文档的数组

来自分类Dev

流星-查询嵌入式文档