mongodb/mongoose 通过 id 查找文档数组的方法。 - 使用 $in 或多个 findbyId?
mongodb/mongoose The way to find an array of docs by ids. - Using $in or multiple findbyId?
我想查找具有 ID 数组的文档。我有两种方法
使用find({_id:{$in:arr}} , callback)
使用多个 findById
,并使用一些异步代码包装器将它们一起执行。
这里我关心的是哪个更好?对于服务器端,第二个似乎需要更多的计算,但是数据库部分呢?
谢谢!
这取决于您认为什么对您的系统来说是繁重的操作。选项 1 需要 1 个数据库调用,而选项 2 需要多个(取决于您获取的数量)。
无论如何,选项 1 似乎是更好的选择,因为它 return 是一个游标,您只需对其进行迭代。至于选项 2,您需要多个数据库调用(可能是在一个循环中进行)并且它将 return 处理数据并关闭游标。
只有当您只有一个值要查找或您有特殊索引而不仅仅是 $in 查询时,选项 2 才会对您有利。说属性 1、属性 2 的索引。
可以参考this.
我想查找具有 ID 数组的文档。我有两种方法
使用
find({_id:{$in:arr}} , callback)
使用多个
findById
,并使用一些异步代码包装器将它们一起执行。
这里我关心的是哪个更好?对于服务器端,第二个似乎需要更多的计算,但是数据库部分呢?
谢谢!
这取决于您认为什么对您的系统来说是繁重的操作。选项 1 需要 1 个数据库调用,而选项 2 需要多个(取决于您获取的数量)。
无论如何,选项 1 似乎是更好的选择,因为它 return 是一个游标,您只需对其进行迭代。至于选项 2,您需要多个数据库调用(可能是在一个循环中进行)并且它将 return 处理数据并关闭游标。
只有当您只有一个值要查找或您有特殊索引而不仅仅是 $in 查询时,选项 2 才会对您有利。说属性 1、属性 2 的索引。
可以参考this.