Удалить-Вставить в MongoDB - PullRequest
       13

Удалить-Вставить в MongoDB

0 голосов
/ 22 января 2019

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

код как показано ниже

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. Если эта опция доступна, ее можно легко автоматизировать без каких-либо простоев. Кто-нибудь пробовал это раньше или решил с помощью любого другого подхода?

Спасибо

...