我是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请求?
答案 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 上阅读更多内容。