コレクションを別のサーバーにコピーして、すべての文書の値を変更する必要があります。コレクションは非常に大きいので、コレクションをコピーしてデータを変更するのではなく、時間を節約するために、ドキュメントを通過する間にドキュメントを挿入する前に値を変更するスクリプトがあるかどうか疑問に思っていましたサーバ。 変更は、フィールドが0のパディングです。例えば文書を変更しながらコレクションを別のサーバーにコピーする方法
:
出典:SERVER1:27017
db.students:
{"_id" : ObjectId("..."), "sId" : "1234", "grade" : 4 }
{"_id" : ObjectId("..."), "sId" : "4444", "grade" : 3 }
{"_id" : ObjectId("..."), "sId" : "5555", "grade" : 5 }
先:SERVER2:27017
db.students:
{"_id" : ObjectId("..."), "sId" : "00", "grade" : 4 }
{"_id" : ObjectId("..."), "sId" : "0004444", "grade" : 3 }
{"_id" : ObjectId("..."), "sId" : "0005555", "grade" : 5 }
ありがとうございました。挿入する前にデータを変更する方法はありますか?私はmongoの輸出入を認識しています。私は時間を節約しようとしています。 –
コレクションが非常に大きいので、DBレイヤー自体で処理してください。tempコレクションのmongodump、mongorestoreを使い、$ project、$ concat、$ outを一緒に使って目的のコレクションとして保存し、最後にtempコレクションを削除します。 –