node.js - 在 Mongodb 中插入不带 ObjectId 的文档

标签 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。我尝试过对其进行字符串化,但没有用。

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

最佳答案

Mongodb会自动生成'_id'仅当您在插入文档时未指定 _id 字段的值时,才会使用此字段。因此,您只需在插入文档时手动设置_id即可:

jsonBody._id = "123"; // for example
db.collection("someCollection").insert(jsonBody, function(err,data) {

关于node.js - 在 Mongodb 中插入不带 ObjectId 的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34991237/

相关文章:

node.js - Heroku 默认的 Node.js 应用程序

node.js - 如何在 Node.js 中使用 log.io 日志模块

mongodb - hasMany关系为NULL时grails对象查询

java - 在 DOM 中使用 mongodb 对象的 _id 值是个好主意吗?

node.js - 没有 Passport.js 或 everyauth 的 Expressjs FB 登录

node.js - 将自定义数据添加到 Ghost CMS

javascript - Express 正在提供 index.html 而不是我的 Webpack 包。我的配置文件有问题吗?

mongodb - 是否可以在 Mongo shell 中创建 ObjectId?

MongoDB聚合从嵌套数组中获取最后一个元素的字段

mongodb - 高级Elasticsearch查询