Я синхронизировал несколько данных сбора монго с нескольких серверов на один сервер монго для одного проекта. На данный момент это своего рода ручное задание, которое мне нужно запустить
код как показано ниже
mongoexport -d dbname1 -c collection_name -h mongo1host:27017
--jsonArray -o collection_name.json
mongoimport --host mongo2host -u user -p password --db dbname
--collection collection_name_new < /data/xxx/collection_name.json
--jsonArray
Затем войдите на сайт mongo2host
db.collection_name.drop();
db.collection_name_new.renameCollection("collection_name")
Чтобы автоматизировать это и избежать объединения всей коллекции за один раз, мы можем поместить фильтры в mongoexport. Но я не могу найти способ удалить только записи, присутствующие в промежуточной коллекции, и вставить эти записи в основную коллекцию просто как мы DELETE FROM tab1 WHERE id
в SELECT id FROM staging.tab1
затем работает
INSERT INTO tab1 SELECT * FROM staging.tab1
тип подхода в Mongo. Если эта опция доступна, ее можно легко автоматизировать без каких-либо простоев. Кто-нибудь пробовал это раньше или решил с помощью любого другого подхода?
Спасибо