SAVE操作返回存储_id?

时间:2013-11-07 19:02:24

标签: mongodb mongoose

在mongoose.js或mongodb api中是否有save操作,它返回存储条目的_id?

在mongoose中,以下内容将保存Entry。

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

同样db.collection.save(document)会将文档保存在mongodb api中。但在这两种情况下,您需要再次查询db以获取_id,我想避免这种情况。因为它似乎不方便。

1 个答案:

答案 0 :(得分: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
});