0

我是 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"
  }

 }

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

4

1 回答 1

0

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

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

我不认为这真的会更慢。

于 2013-05-09T07:49:53.017 回答