使用moped/mongoid的嵌套mongodb查询?

使用moped/mongoid的嵌套mongodb查询?,mongodb,mongoid,moped,Mongodb,Mongoid,Moped,我想使用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 = Us

我想使用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截断log/test.log,2运行测试,3检查log/test.log,您可以看到与您的测试对应的MOPED查询。对测试进行更改,并重复上面的步骤1-3。