MongoDb insert()将_id放入我的对象中,我不想要它们

时间:2014-01-06 18:04:28

标签: javascript node.js mongodb

如果我有一个对象数组,请说

var myArray = [
  { name: 'Fred', state: 'CA' },
  { name: 'Jane', state: 'DE' }
];

并将它们插入到mongo集合中(我使用的是node.js和“标准”npm mongo驱动程序,npmjs.org / package / mongodb)

someCollection.insert(myArray, errCallback);

我有点惊讶的是,结果对象(在内存中 - 用调试器查找)现在有了添加的_id字段。

有没有选择可以避免这种情况?在某些方面,_id是一件好事,事实上,我写了一些额外的代码因为我不认为它会存在!但我想将它们打印出来作为JSON等,最终用户可能不希望看到像

这样的东西
"name" : "Fred",
"_id": "52caeb50559518c01ab1dda5"

(加上可能的安全问题)

显然,我可以调整我的打印代码,但对于将来,避免这种情况可能会很好,或者至少知道如何。如果无法避免,我肯定要编写自己的ID生成器。

查看文档(http://mongodb.github.io/node-mongodb-native/api-generated/collection.html)我看到一个forceServerObjectId,但这不是我想要的。

1 个答案:

答案 0 :(得分:0)

我不熟悉node.js驱动程序,但我可以证明默认的MongoDB shell的默认行为。执行常规db.collection.find({query},{fields})查询时,_id字段将自动包含在输出中。要删除_id字段,您需要在输出的字段选择中明确声明_id : 0。 node.js驱动程序中的行为可能类似。