だから私はいくつかのコレクションに数百万レコードでのMongoDBデータベースを持っています。さてここで問題ですmongodb:1つのObjectIDへの参照をすべて別のものに置き換えますか?
{
_id: ObjectID(....)
ReferenceSummary: [
{
person: ObjectID(<some-ID-from-Collection-A>)
count: 312
},
{
person: ObjectID(<some-other-ID-from-Collection-A>)
count: 42
},
...
],
TopPeople: [ ObjectID(<another-ID-from-Collection-A>), ObjectID(<yet-another-ID-from-Collection-A>), ...]
}
:ように見える
{
_id: ObjectID(....)
name: "Hubert Humphrey"
}
コレクションBの文書:ここ
コレクションA文書は次のようになり...いくつかのレコードの(大幅に簡略化)の例です。しかし、与えられたコレクションBの文書は2を参照するインスタンスがない私たちは(のみ3または4)コレクションA.で、我々はいくつかの重複を持って実現し、彼らはそれぞれのコレクションB.
に数十万回を参照しています異なるコレクション互いに重複している文書。私はこの問題を解決するために何をする必要があるかそう
は、次のとおりです。コレクションAにおける重複の各ペアについて、_id
のObjectId(X)
とObjectId(Y)
で、
ObjectId(X)
と
ObjectId(Y)
の出現をすべて置き換えます
生のJSONファイルを扱っていた場合は、文字列置換を行い、それを使って終了します。
ちょうどコレクションAの重複ごとに1つのコマンドを使用して、モンゴシェルでこれを行う簡単な方法はありますか?
を使用している私は、人が重複していると仮定 - あなたは重複を選択する方法がありますか(?これはidフィールドまたは他のメタデータである) – profesor79
これは、手動入力エラーによって引き起こされる特定の重複のほんの一部です。一度にそれらのうちの1つにすべての参照を置き換える簡単な方法は、そのトリックを行うでしょう。 – DanM