MongoDB Save(C#ドライバ)で奇妙な状況があります。私は既存の文書を保存しています(キーはBsonDocument内に保存されています)。 My Saveステートメントは次のようになります。MongoDB Saveは既存の要素を削除しません
SafeModeResult result = moleculeCollection.Save(moleculeDoc, SafeMode.True);
ここで、moleculeDocはBsonDocumentです。保存されている分子DocBodyDocument内の要素は異なる場合があります。場合によっては、保存されているmolecularDoc BsonDocumentに含まれていないため、データベース内の既存の文書の要素が削除されることがあります。
保存に成功した後、保存されているBsonDocument内に存在しないにもかかわらず、一部の要素がデータベース保有の文書内に残ります。 SECOND時間を保存すると、これらの要素は通常消えます。
は、私は慎重に目を球状にBsonDocument詳細に先立って保存する必要があり、それは間違いなく保存した後に表示される特定の要素が含まれていません(ただし、これは、保存する前に、データベース・開催ドキュメント内に存在しなかった。
ここは、保存されたドキュメントの例です:
{
"_id": {
"$binary": "qAvZU8AzqES1fv0OL9GaBw==",
"$type": "03"
},
"title": "Url 1a",
"mediatype": "url",
"modifieddate": "Wed, 09 Nov 2011 11:56:57 GMT",
"filename": "iphone.pdf",
"contenttype": "application/pdf",
"weburi": "ffff"
}
注「ファイル名」の要素が保存されたBsonDocument内ではなかったことを、まだそれはデータベース前であったこと、保存した後、所定の位置に残っています保存します。
一つの奇妙な側面は、セカンドセーブ後にこれらの「ゴースト」要素を削除することです。
誰もがこれにどのような光を当てることができますか?
mongodb saveはupsert(更新のようにフィールドレベルではなくドキュメントレベル)であると確信しています。 IDが存在する場合はドキュメント全体をオーバーライドし、新しいIDを作成する場合はそれを上書きします。だから新しい文書のどのフィールドが保存されているドキュメントにあるのかだけです。何がmolecularCollectionのタイプですか?それはMongoCollectionですか? – RameshVel