使用Express.js从MongoDB中检索唯一ID

时间:2015-05-07 05:59:46

标签: node.js mongodb express

我是MongoDB的新手。我目前的代码如下:

var app = express();
app.post('/myDB', function(req, res) {
console.log('POSTed data');
db.myDB.insert(req.body, function(err, doc) {
    console.log(err);
    res.json(doc);
});

})

我知道当数据插入MongoDB时,会创建一个唯一的_id key:value对。我想在数据插入时访问这个唯一ID。

但是根据我目前的知识(当然不是很多),我必须做一个app.get('/ myDB /:id')...(或类似的东西)才能访问该唯一标识符。有没有办法做到这一点,而无需额外的http请求?

1 个答案:

答案 0 :(得分:0)

在MongoDB中,使用Node.js驱动程序,您可以从回调函数的第二个参数中获取 inserted id 。语法是:

collection.insert(docs[[, options], callback])

其中docs是单个文档对象或文档数组,options是一个选项对象,callback是在插入记录后运行的回调函数。第二个参数返回插入的文档数组。

因此,您可以通过以下方式检索插入的ID:

var app = express();
app.post('/myDB', function(req, res) {
console.log('POSTed data');
db.myDB.insert(req.body, {w:1}, function(err, doc) {
    console.log("Record added as "+ doc[0]._id);
    res.json(doc);
});

您可以在文档 here 上阅读更多内容。