MongoDB:как объединить две коллекции/базы данных в одну?

во-первых обратите внимание, что этот вопрос отличается от следующих двух

в MongoDB: объединение данных из нескольких коллекций в одну..как?

объединение двух коллекций в MongoDB

MongoDB и "присоединяется"

я объясню следующим образом:

у меня есть две базы данных с именем:DB_A и DB_B в моем mongodb.

каждая база данных имеет одну коллекцию с то же имя называется store.

обе коллекции имеют много документов, которые имеют точно такую же структуру {key: "key1", value:" value1"} и т. д.

на самом деле, я должен был только создать DB_A и вставьте все документы в DB_A. Но позже, когда я сделал свой второй раунд вставки, я сделал ошибку, введя неправильное имя в качестве имени базы данных.

Итак, теперь каждая база данных имеет размер 32GB, я хочу объединить две базы данных.

один проблема / ограничение заключается в том, что свободное пространство теперь доступно только 15GB, поэтому я не могу просто copy все от DB_B to DB_A.

мне интересно, могу ли я сделать move? или какой самый простой / лучший/быстро способ объединения двух простых баз данных? Я предпочитаю самый эффективный способ, как просто повторно вставить 32GB в DB_A займет довольно много времени.

1 ответов


Я думаю, что самый простой (и, возможно, единственный) способ-написать сценарий, который объединяет два документа баз данных после документа.

  1. получить первый документ из DB_B.
  2. вставьте его в DB_A, если это необходимо.
  3. удалить его из DB_B.
  4. повторять до конца.

вместо удаления документов из исходной БД (DB_B), вы можете просто читать документы в пакетах. Это должно быть более эффективно, но немного сложнее код (особенно если вы никогда этого не делали).