1

mongodb を使用していくつかのネストされたクエリを作成したいのですが、mongoid/moped を初めて使用します。例のために、友人の友人のクエリを次のように記述しても問題ありませんか?

u1 = User.last # get some user
friends_of_friends = u1.friends.map do |friend|
                       User.find(friend.id).friends.map(&:name)
                     end

多分

u1 = User.last # get some user
friends_of_friends = u1.friends.flat_map(&:friends)

これらのクエリが機能すると確信しています。しかし、私が知らないのは、単一のクエリがmongoに渡されるのか、それとも複数のクエリが渡されるのか?

  • 私が欲しいもの:クエリを「コンパイル」して送信し、結果を取得する=> 1回のデータベース呼び出し、素晴らしいことが保証されます
  • 私が望まないこと:ユーザー1を見つけ、結果の配列を返し、見つかったユーザーごとに新しい友達リクエストを実行します=>多くのデータベース呼び出し、パフォーマンスの低下、そして間違いなく素晴らしいことではありません!

前もって感謝します !

4

0 に答える 0