javascript - MongoDB insertOne 改变数据?
问题描述
我正在学习将数据插入 mongodb,这是代码:
console.log(this.data) //first
userCollection.insertOne(this.data)
console.log(this.data) //second
第一个日志:
{用户名:aaa,密码:aaa}
第二个日志:
{用户名:aaa,密码:aaa,_id:some_id_here}
_id来自哪里?
mongodb 会更改数据还是像回调一样工作?
就像当我们在 mongodb 中插入数据时,它会将已插入的数据发回?
解决方案
所有其他答案都是正确的,但他们无法解释为什么会发生这种情况。
如果您检查 Node.js MongoDB 驱动程序 API 的insertOne方法,您会注意到有一个属性可以传递给名为 的选项对象forceServerObjectId
,它的作用是什么,我在引用:
强制服务器分配 _id 值而不是驱动程序。
并且默认设置为false
.
因此,如果您使用的是驱动程序:
如果传入的文档不包含该
_id
字段,驱动程序将在每个缺少它的文档中添加一个,从而改变文档。
forceServerObjectId
可以通过将属性设置为 来覆盖此行为true
。
轰隆隆,给你
推荐阅读
- angular - 如何让 Angular 组件引用其他组件?
- javascript - 在 nodejs 中链接导入和导出
- android - Android应用程序中的WebView不加载图像
- javascript - 在网站中使用表情符号作为网站图标
- php - PHP用列表标签替换自定义标签
- rest - 集成到 Bit.ly API 版本 4 - 如何生成 OAuth2 令牌以与 Bit.ly API V4 集成并创建缩短的 url?
- django - Django:反转状态的端点不起作用
- c# - C# Unity 我的代码不允许一个类编辑另一个类中的变量
- ansible - 如何在多个主机上运行单个角色任务(多个任务)..?
- mysql - MySQL:通过子查询和到其他表的链接来增加表检索时间?