javascript - 如何在 MongoDB 中累积结果(使用 forEach?)?

标签 javascript mongodb mongodb-query nosql

假设我想搜索一个集合,扫描返回的结果集并返回它的一些转换。我尝试了以下代码:

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/

相关文章:

mongodb - [MongoDB] :where is the incoming write operations saved in when the balancer is doing migration?

javascript - 我怎么知道连接是否安全?

javascript - 如何修改代码以使用我的数据库

javascript - WebView 返回错误的 window.innerHeight

java - 使用 Java 从 mongodb 遍历所有文档的性能不佳

javascript - 在两个集合之间集成

mongodb - 如何在 Mongodb compass UI 中运行地理空间查询?

MongoDB count with query 返回的记录多于 count all

javascript - 从非按钮元素触发按钮点击

javascript - 如何通过单击另一个按钮使按钮可见?