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

下面的代码片段从POST请求中插入一个JSON对象。 问题在于,它也为stringObjectId加上每一个唯一的键。 请参阅预期和当前的输出更清晰。

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 

预期产出:

在这里输入图像说明

电stream输出:

在这里输入图像说明

我想摆脱每个唯一ID前缀的ObjectId 。 我试过把它stringifying起来,但没用。

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

只有在插入文档时没有为_id字段指定值时,Mongodb将自动生成“_id”字段。 所以你可以在插入文档时手工设置_id

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

这是devise的 :

_id字段

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

需要一个主键。