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