在没有ObjectId的情况下在Mongo中插入文档

时间:2016-01-25 11:15:05

标签: node.js mongodb

以下代码段从POST请求中插入JSON对象。问题是它还在字符串 ObjectId 前面添加了每个唯一键。请更清楚地查看预期和当前输出。

 module.exports.addMethod = function (db, req) {

  var body = "";
  req.on('data', function (chunk) {
    body += chunk;
  });

  req.on('end', function () {
      var jsonBody = JSON.parse(body);   

    db.collection("someCollection").insert(jsonBody, function(err,data) {
        if(err){
            console.log("cannot addd shit");
        }// error handling
          console.log("added your stuff");  
      });
  })// req.on ends here
}// addMethod ends here

预期产出:

enter image description here

当前输出:

enter image description here

我想摆脱以每个唯一ID为前缀的 ObjectId 。我已经尝试了stringifying但没有用。

注意:我没有使用expressjs,因此我的假设是我无法使用body-parser。我不想使用expressjs。

2 个答案:

答案 0 :(得分:3)

只有在插入文档时未指定ga('send', 'pageview', {page: '/gapv/registration/success'}); 字段的值时,Mongodb才会自动生成'_id'字段。因此,您只需在插入文档时手动设置_id

_id

答案 1 :(得分:0)

这是by design

  

_id字段

     

如果文档没有指定_id字段,那么MongoDB将在插入之前添加_id字段并为文档指定唯一的ObjectId。大多数驱动程序创建一个ObjectId并插入_id字段,但如果驱动程序或应用程序没有,mongod将创建并填充_id。

需要主键。