Mongo C#:Upserting正在创建一个新文档

时间:2018-11-12 08:57:43

标签: c# mongodb

我有以下对象

class Dog{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    [BsonIgnoreIfDefault]
    [BsonIgnoreIfNull]
    public string Id { get; set; }

    public string Owner {get; set;}
}

以下代码无法重新插入文档,而是创建了一个新文档,因此,我遇到了一些问题,可以肯定的是,我可以在插入旧文档之前删除该旧文档,但这也将是2个查询而不是1条查询。

var result = await
collection.FindOneAndReplaceAsync( 
     Builders<Dog>.Filter.Eq("owner","bill"), 
     updateddog, 
     new FindOneAndReplaceOptions{ 
         ReturnDocument = ReturnDocument.After, 
         IsUpsert = true});

我已经读过类似的文章,因为C#驱动程序将Id字段序列化,然后将其用于匹配对象,但是由于使用了默认ID,因此该对象不匹配,因此我尝试了建议忽略该ID(如果它为null或默认值),但不起作用

0 个答案:

没有答案