Mongodb

來自多個轉儲的 mongorestore

  • March 20, 2022

我有一個 mongo 數據庫,其中現有條目永遠不會改變,但每天都會添加新條目。我有大約 1000 個轉儲,每個都是在相應日期添加的新數據。

即我有以下文件:

/dump1/mydatabase/mycollection1.bson
/dump1/mydatabase/mycollection1.metadata.json
/dump1/mydatabase/mycollection2.bson
/dump1/mydatabase/mycollection2.metadata.json
...
/dump2/mydatabase/mycollection1.bson
/dump2/mydatabase/mycollection1.metadata.json
/dump2/mydatabase/mycollection2.bson
/dump2/mydatabase/mycollection2.metadata.json
...
...
...
/dump1000/mydatabase/mycollection1.bson
/dump1000/mydatabase/mycollection1.metadata.json
/dump1000/mydatabase/mycollection2.bson
/dump1000/mydatabase/mycollection2.metadata.json

我想恢復包含所有集合的“mydatabase”。每個集合中的內容應該附加到現有集合而不是覆蓋它們。

當我跑

mongorestore /dump1
mongorestore /dump2
...

這會將我的數據附加到現有集合中還是覆蓋它們?

在下面找到 MongoDB 官方文件中的措辭(僅插入):

mongorestore 可以創建新數據庫或將數據添加到現有數據庫。但是,mongorestore 只執行插入而不執行更新。也就是說,如果將文件恢復到現有數據庫和集合以及現有文件與要恢復的文件具有相同的值 _id 欄位,則 mongorestore 不會覆蓋這些文件。

要回答您的問題,不,文件不會被覆蓋。

引用自:https://dba.stackexchange.com/questions/244540