mongodb / mongoose通过id找到docs数组的方法。 - 使用$ in或多个findbyId?

时间:2015-03-23 13:44:27

标签: node.js mongodb mongoose

我想查找带有一系列ID的文档。我有两种方法可以做到这一点

  1. 使用find({_id:{$in:arr}} , callback)

  2. 使用多个findById,并使用一些异步代码包装器一起执行它们。

  3. 我关注的是哪一个更好?对于服务器端来说,第二个需要更多计算,但数据库部分呢?

    THX!

1 个答案:

答案 0 :(得分:0)

这取决于您认为对您的系统来说是一项繁重的操作。选项1需要1个DB调用,而选项2需要几个(取决于您获取的数量)。

无论如何,选项1似乎是一个更好的选择,因为它会返回一个光标而你只是迭代它。对于选项2,您需要多次db调用(可能是在循环中执行),它将返回数据并关闭游标。

唯一的时间选项2会让你受益的是你只有一个值可以找到,或者你有特殊的索引,而不仅仅是$ in查询。在attribute1,attribute2上说索引。

您可以参考this