假设我想搜索一个集合,扫描返回的结果集并返回它的一些转换。我尝试了以下代码:
db.my_collection.find({timestamp : {$gt: 1343032491799}}, {_id:0,sid:1}).limit(20).forEach(function(element) { print(element.sid); })
好的,效果很好。对于这个问题:我怎样才能将结果 (sid
) 累积到一个数组中而不是仅仅打印它们?
更新:当然首选(但不是必需)ruby 样式的单行
最佳答案
在光标上调用 toArray
而不是 forEach
:
var a = db.my_collection.find(
{timestamp : {$gt: 1343032491799}}, {_id:0,sid:1}).limit(20)
.toArray().map(function(o){return o.sid;})
更新
似乎您可以跳过 toArray
并直接转到 map
因为游标直接提供了该方法:
var a = db.my_collection.find(
{timestamp : {$gt: 1343032491799}}, {_id:0,sid:1}).limit(20)
.map(function(o){return o.sid;})
关于javascript - 如何在 MongoDB 中累积结果(使用 forEach?)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13473987/