如果有这段代码,我要在mongodb节点中插入很多项目:
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添加到每个项目),如下所示:
输出:
在[{{name:'xpto'},{name:'other xpto'}]之前的提取 [{后的提取物:'xpto',_id:5b59faf872d33e53c8db4f65},
{name:'other xpto',_id:5b59faf872d33e53c8db4f66}]
我想念什么吗?这是预期的吗?如何更改const的值? 节点是版本8.11.3,mongo是mongodb-win32-x86_64-2008plus-ssl-3.6.5-rc0
答案 0 :(得分:0)
问题1:-Java中CONST关键字的行为?
答案:- const 声明创建对值的只读引用。这并不意味着它拥有的值是不可变的,只是不能重新分配变量标识符。例如,在内容是对象的情况下,这意味着可以更改对象的内容(例如,其参数)。 More Info on CONST
问题2:-insertMany()行为,这是预期的吗?
答案:- 如果文档未指定 _id 字段,则mongod将添加_id字段并为文档分配唯一的ObjectId。大多数驱动程序会创建一个ObjectId并插入 _id 字段,但是 mongod 将创建并填充 _id (如果驱动程序或应用程序未创建)。< / p>
如果文档包含 _id 字段,则_id值在集合中必须唯一,以避免重复的键错误。 More info on insertMany()