次の状況があります。異なるサーバーに 2 つの mongodb インスタンスがあります。例えば
Mongodb instance on server "one" (host1:27017) with database: "test1"
Mongodb instance on server "two" (host2:27017) with database: "test2"
ここで、「host1:27017」の「test1」データベースを「host2:27017」の「test2」と同期する必要があります。
「同期」とは、次のことを意味します。
「test1」データベースの一部のコレクションが「test2」に存在しない場合、このコレクションは「test1」データベースに完全にコピーされます。
コレクションの一部のレコードが「test2」データベースに存在しない場合は、追加する必要があります。それ以外の場合は更新されます。"test1" データベースの A コレクションにレコードが存在せず、"test2" データベースの A コレクションにレコードが存在する場合、"test2" からレコードを削除する必要があります。
ところでここで問題。例: "test1" データベースには、次のドキュメントを含むコレクション "A" があります。
{
_id: "1",
name: "some name"
}
「test2」データベースには、次のドキュメントを含むコレクション「A」があります。
{
_id: "1",
name: "some name"
}
{
_id: "2",
name: "some name2"
}
db.copyDatabase('test1', 'test2', "host2:27017") を実行すると、次のエラーが発生します。
"errmsg": "例外: E11000 重複キー エラー インデックス: test1.A.$ id重複キー : { : \"1\" }"
cloneDatabase
コマンドと同じ。どうすれば解決できますか?
一般に、データベースを同期する方法は何ですか? あるサーバーから別のサーバーにファイルをコピーするのが最も簡単な方法であることは知っていますが、もっと良い方法があるかもしれません。
助けてください。私はモンゴの新参者です。ありがとう。