1

埋め込みドキュメントを ID で検索して返そうとしています。これは可能ですが、私が見る限り、それを埋め込むドキュメントを見つけるためにmongoを使用し、そのドキュメントをルビーで検索して、私が求めている埋め込みドキュメントを検索することによってのみ可能です。このような:

# commenter.rb
  def post
    # todo: find syntax do avoid double query
    if user = User.any_of({'posts.commenter_ids' => self.id}).last
      user.posts.where('commenter_ids' => self.id).last
    end
  end

シンプルに思えますが、Google/SO 検索で明らかに気に入ったものは見つかりませんでした。

考え?

4

4 に答える 4

2
class Order
  embeds_many Products
end

class Product
  embedded_in Order
end

prod_id = "1234" # the embedded doc's _id you request
o = Order.find(product_ids: prod_id)
p = o.products.find(prod_id)

親ドキュメントをロードした後、Mongoid 埋め込みドキュメントのクエリを実行するとデータベース サーバーにヒットすることも参照してください。

于 2013-12-19T18:17:21.087 に答える
-1

埋め込まれているドキュメントがなければ、リソースを見つけることはできません。2 つの関係を埋め込むのではなく、単に関係が必要な場合は、embeds_many http://mongoid.org/en/mongoid/docs/relations.html#has_manyの代わりに has_many を使用する必要があります。その後、関連ドキュメントなしでドキュメントを見つけることができます。

于 2013-03-10T15:32:53.650 に答える