У меня странная ситуация с MongoDB Save (драйвер C #). Я сохраняю существующий документ (ключ находится внутри сохраняемого BsonDocument). Мое утверждение Save выглядит следующим образом:
SafeModeResult result = moleculeCollection.Save(moleculeDoc, SafeMode.True);
, где молекулой является документ BsonDocument. Сохраняемые элементы в молекуле Doc BsonDocument могут различаться. Иногда элементы в существующем документе в базе данных удаляются, потому что сохраняемый MoleDoc BsonDocument больше не содержит их.
Проблема в том, что после успешного сохранения некоторые элементы остаются в документе, хранящемся в базе данных, даже если они не существовали в сохраняемом BsonDocument. Когда я сохраняю ВТОРОЕ время, эти элементы обычно исчезают.
Я тщательно изучил документ 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"
}
Обратите внимание, что элемент "filename" НЕ был в BsonDocument, который был сохранен, однако он остается на месте после сохранения, находясь в базе данных до сохранения.
Один странный аспект заключается в том, что он удаляет эти «призрачные» элементы после ВТОРОГО сохранения.
Может кто-нибудь пролить свет на это?