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,返回一个结果数组,并为每个找到的用户执行一个新的好友请求 => 大量的数据库调用,性能损失,绝对不是很棒!

提前致谢 !

4

0 回答 0