javascript - MongoDb insert() 正在将 _id 放入我的对象中,但我不想要它们

标签 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"

(加上可能的安全问题)

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

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

最佳答案

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

关于javascript - MongoDb insert() 正在将 _id 放入我的对象中,但我不想要它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956319/

相关文章:

javascript - 非常简单的javascript图像加载问题

node.js - 无法验证 URL Facebook Messenger 聊天机器人

python - 如何创建一个监听文件描述符的 Python 套接字服务器?

python - MongoClient 在 fork 之前打开。创建 MongoClient

javascript - Charts.js : Load new data set to an existing chart

javascript - 具有顶部导航和左侧导航的自定义母版页

javascript - 使用 JQuery 分离和恢复来过滤选择列表

node.js - 将对象数组保存到数据库 Nodejs 和 MongoDB

java - 在数亿文本中进行正则表达式搜索的任何建议(存储在 MongoDB 中)

mongodb - 比较同一文档的两个字段