【发布时间】:2015-05-26 12:52:36
【问题描述】:
我想查找具有一组 id 的文档。我有两种方法可以做到这一点
使用
find({_id:{$in:arr}} , callback)使用多个
findById,并使用一些异步代码包装器将它们一起执行。
我关心的是哪个更好?对于服务器端来说,第二个似乎需要更多的计算,但是数据库部分呢?
谢谢!
【问题讨论】:
我想查找具有一组 id 的文档。我有两种方法可以做到这一点
使用find({_id:{$in:arr}} , callback)
使用多个findById,并使用一些异步代码包装器将它们一起执行。
我关心的是哪个更好?对于服务器端来说,第二个似乎需要更多的计算,但是数据库部分呢?
谢谢!
【问题讨论】:
这取决于您认为对您的系统来说是一项繁重的操作。选项 1 需要 1 个 DB 调用,而选项 2 需要多个(取决于您获取的数量)。
无论如何,选项 1 似乎是一个更好的选择,因为它会返回一个游标,而您只是在对其进行迭代。至于选项 2,您需要多个 db 调用(可能在循环中进行),它将返回数据并关闭游标。
选项 2 对您有益的唯一时间是当您只有一个值要查找或您有特殊索引而不仅仅是 $in 查询时。在属性 1、属性 2 上说索引。
您可以参考this。
【讨论】: