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 に答える