簡體   English   中英

NodeJS和mongo:insertMany通過回調函數中的數據更改值

[英]NodeJS and mongo: insertMany changing value from data in the callback function

如果有這段代碼,我要在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添加到每個項目),如下所示:

輸出:

在[{名稱:'xpto'},{名稱:'other xpto'}]之前進行提取,在[{{name:'xpto',_id:5b59faf872d33e53c8db4f65},
{名稱:'other xpto',_id:5b59faf872d33e53c8db4f66}]

我想念什么嗎? 這是預期的嗎? 如何更改const的值? 節點版本為8.11.3,mongo為mongodb-win32-x86_64-2008plus-ssl-3.6.5-rc0

問題1:-Java中CONST關鍵字的行為?

答案: -const聲明創建對值的只讀引用。 這並不意味着它擁有的值是不可變的,只是不能重新分配變量標識符。 例如,在內容是對象的情況下,這意味着可以更改對象的內容(例如,其參數)。 有關CONST的更多信息

問題2:-insertMany()行為,這是預期的嗎?

答案:-如果文檔未指定_id字段,則mongod將添加_id字段並為文檔分配唯一的ObjectId。 大多數驅動程序會創建一個ObjectId並插入_id字段,但如果驅動程序或應用程序未創建,則mongod將創建並填充_id

如果文檔包含_id字段,則_id值在集合中必須唯一,以避免重復的鍵錯誤。 有關insertMany()的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM