我想查找带有一系列ID的文档。我有两种方法可以做到这一点
使用find({_id:{$in:arr}} , callback)
使用多个findById
,并使用一些异步代码包装器一起执行它们。
我关注的是哪一个更好?对于服务器端来说,第二个需要更多计算,但数据库部分呢?
THX!
答案 0 :(得分:0)
这取决于您认为对您的系统来说是一项繁重的操作。选项1需要1个DB调用,而选项2需要几个(取决于您获取的数量)。
无论如何,选项1似乎是一个更好的选择,因为它会返回一个光标而你只是迭代它。对于选项2,您需要多次db调用(可能是在循环中执行),它将返回数据并关闭游标。
唯一的时间选项2会让你受益的是你只有一个值可以找到,或者你有特殊的索引,而不仅仅是$ in查询。在attribute1,attribute2上说索引。
您可以参考this。