【问题标题】:How to determine, if FindOneAndUpdate resulted in Upsert in official C# MongoDB Driver?如何确定 FindOneAndUpdate 是否导致官方 C# MongoDB 驱动程序中的 Upsert?
【发布时间】:2016-11-01 19:38:53
【问题描述】:

如果结果model 被插入,我怎么知道?

FilterDefinition<T> filter = Builders<T>.Filter.Eq("_id", modelId);
UpdateDefinition<T> update = ... ;

var opts = new FindOneAndUpdateOptions<T>()
{
    IsUpsert = true,
    ReturnDocument = ReturnDocument.After
};

var model = this.Collection.FindOneAndUpdate(filter, update, opts);

【问题讨论】:

  • @dyouberg 谢谢,但问题是针对 mongodb c# 驱动程序,而不是 mongodb 本身。我找不到任何合适的方法,可以根据 UpdateDefinition 更新/更新单个文档,并且不仅返回结果模型,还返回一个信息,该模型是否被更新。

标签: c# mongodb mongodb-.net-driver


【解决方案1】:

工作

var defination = Builders<User>.Update.SetOnInsert(f => f.Name, user.Name);
                                      .SetOnInsert(f => f.Surname, user.Surname);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多