1

save格納されたエントリの _id を返す mongoose.js または mongodb api に操作はありますか?

マングースでは、次のようにしてエントリを保存します。

p.save(function (err) {
  if (err) return handleError(err);
  else console.log('saved');
  })
})

同様db.collection.save(document)に、ドキュメントを mongodb api に保存します。ただし、どちらの場合も、_id について db に再度クエリを実行する必要がありますが、これは避けたいと思います。非効率に思えるからです。

4

1 に答える 1

0

Mongoose でオブジェクトをインスタンス化すると、オブジェクトには_id既に割り当てられた があります (デフォルトでクライアントに割り当てられているため)。

したがって、チェックするだけの場合:

console.log(p.id);

を呼び出す前に、値があることがわかりますsave

また、Node.JS 用のネイティブ ドライバを使用する場合は、ドキュメントが設定されたresultパラメータで返されます_id

var collection = db.collection("tests");
collection.insert(p, function(err, results) {
   if (err) { return; }
   // results in an array, and in this case
   // results[0]._id would be available
});
于 2013-11-07T21:34:41.233 に答える