将MongoDB结果作为对象而不是数组

时间:2013-05-09 07:41:42

标签: json mongodb object find

我是MongoDB的新手,我正试图以不同的方式获得结果。

如果我执行查询db.collection.find()。toArray()我会得到类似的结果:

[
  {
    "_id":"34234...",
    "first":"Mark",
    "last":"Marker"
  },
  {
    "_id": "34235...",
    "first":"Adam",
    "last":"Smith"
  }
]

是否有api可以让您收到如下结果?:

{
 "results" : {

  "34234..." :{
    "_id":"34234...",
    "first":"Mark",
    "last":"Marker"
  },
  "4235..." :{
    "_id": "34235...",
    "first":"Adam",
    "last":"Smith"
  }

 }

或者我需要获取结果数组并迭代每个对象并构建我的响应? (我想避免单光标迭代)

1 个答案:

答案 0 :(得分:0)

我不相信有一个本机API函数。 cursor.toArray()遍历光标中的每个项目,所以我不会过分担心。我们可以跳过toArray()并进行自己的迭代:

var obj = {}
db.collection.find().each(function(item){
  obj[item._id] = item;
});

我认为这不会更慢。