在没有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。
你需要一个主键。