gpt4 book ai didi

javascript - NodeJS 和 mongo : insertMany changing value from data in the callback function

转载 作者:可可西里 更新时间:2023-11-01 10:46:22 29 4
gpt4 key购买 nike

如果有这段代码,我在 mongodb Node 中插入许多项目:

const extractions = [{ name: 'xpto' }, { name: 'other xpto' }]
console.log('extractions before', extractions)

dbase.collection('someendpoint').insertMany(extractions, (err, data) => {
console.log('extractions after', extractions)
})

奇怪的是,inserMany() 方法正在更改 extractions 常量(将 _id 添加到每个项目),如下所示:

输出:

extractions before [ { name: 'xpto' }, { name: 'other xpto' } ] extractions after [ { name: 'xpto', _id: 5b59faf872d33e53c8db4f65 },
{ name: 'other xpto', _id: 5b59faf872d33e53c8db4f66 } ]

我错过了什么吗?这是预期的吗?它如何改变 const 的值?node是8.11.3版本,mongo是mongodb-win32-x86_64-2008plus-ssl-3.6.5-rc0

最佳答案

问题 1:- Javascript 中 CONST 关键字的行为?

答案:- const 声明创建对值的只读引用。这并不意味着它持有的值是不可变的,只是变量标识符不能被重新分配。例如,在内容是对象的情况下,这意味着可以更改对象的内容(例如,它的参数)。 More Info on CONST

问题 2:- insertMany() 行为,这是预期的吗?

回答:-如果文档未指定 _id 字段,则 mongod 添加 _id 字段并为文档分配唯一的 ObjectId。大多数驱动程序会创建一个 ObjectId 并插入 _id 字段,但如果驱动程序或应用程序没有,mongod 将创建并填充 _id

如果文档包含_id 字段,则_id 值在集合中必须是唯一的,以避免出现重复键错误。 More info on insertMany()

关于javascript - NodeJS 和 mongo : insertMany changing value from data in the callback function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51543900/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com