gpt4 book ai didi

c# - 更新时,如果 MongoDB 文档不存在则抛出异常

转载 作者:可可西里 更新时间:2023-11-01 09:55:47 25 4
gpt4 key购买 nike

我有这个类/文档:

public class Band
{
public string Name { get; set; }
public IEnumerable<Musician> Members { get; set; }
}

这就是我更新乐队成员的方式(Geddy 的乐器和姓氏):

var query = Query.And(Query.EQ("Name", "Rushx"), Query.EQ("Members.FirstName", "Geddy"));
var update = Update.Set("Members.$.Instrument", "Vocals").Set("Members.$.LastName", "Lee");
var collection = MongoDbHelper.Db.GetCollection<Band>("Bands");
var result = collection.Update(query, update);

请注意,我故意拼错了 Rush (Rushx)。如果根文档不存在,我们需要抛出异常。那可能吗?我知道我可以检查这个:

Console.WriteLine(result.DocumentsAffected);

但是,这可能会失败,因为音乐家/成员不存在,我们不想导致异常。我们可以先在单独的调用中检查根文档,但这不是原子的。在检查和更新之间,数据库中的项目可能会发生变化。

那么...有没有办法在更新时知道根文档是否存在,以便在它丢失时抛出异常?

最佳答案

也许你可以使用findAndModify .

它是一个原子命令,可以返回操作结果。但请记住,它只会更新一个文档。

关于c# - 更新时,如果 MongoDB 文档不存在则抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21391378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com