有没有一种方法可以将给定集合的所有文档推送到数组中? 我这样做了,但是有什么更快的方法吗?
var ops = [];
db.getCollection('stock').find({}).forEach(function (stock) {
ops.push(stock);
})
PS:我使用的是Mongo 3.4
答案 0 :(得分:1)
您可以仅在find返回的toArray
上使用cursor函数,如下所示:
var ops = db.getCollection('stock').find({}).toArray();
注意:与原始解决方案一样,如果stock
集合包含数百万个文档,这可能会降低性能。
顺便说一句,您可以直接使用db.stock
来缩短查询时间:
var ops = db.stock.find({}).toArray();
答案 1 :(得分:0)
尝试使用lean查询选项。在您的情况下:
db.getCollection('stock').find({}).lean()
答案 2 :(得分:0)