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 ответов
Я думаю, что самый простой (и, возможно, единственный) способ-написать сценарий, который объединяет два документа баз данных после документа.
- получить первый документ из DB_B.
- вставьте его в DB_A, если это необходимо.
- удалить его из DB_B.
- повторять до конца.
вместо удаления документов из исходной БД (DB_B), вы можете просто читать документы в пакетах. Это должно быть более эффективно, но немного сложнее код (особенно если вы никогда этого не делали).