9
我試圖使用.NET驅動程序將文檔插入MongoDB 2.4.4。它似乎不會自動生成_id
upserts,雖然它確實生成了簡單插入上的_id
。我怎樣才能讓驅動程序正確生成_id
?MongoDB .NET不會在upsert上生成_id
下面是一個小例子,演示了這個問題。
public class MongoObject
{
[BsonId(IdGenerator = typeof(StringObjectIdGenerator))]
[BsonRepresentation(BsonType.ObjectId)]
public string MongoID { get; set; }
public int Index { get; set; }
}
var obj = new MongoObject()
{
Index = 1
};
//This inserts the document, but with a _id set to Null
_collection.Update(Query.EQ("Index", BsonValue.Create(1)), Update.Replace(obj), UpdateFlags.Upsert, new WriteConcern() { Journal = true });
//This inserts the document with the expected autogenerated _id
//_collection.Insert(obj);
我很好奇downvote是什麼?由於有人剛剛通過並且低估了我自己回答的其他兩個問題,我只想指出這實際上是StackOverflow的一項完全支持的功能。在「提問」表格中甚至有一個「回答你自己的問題 - 分享你的知識問答風格」複選框。 –
Karma恢復。這是一個有用的問題,並提供有用的答案。 – RobD
哈,謝謝@RobD :) –