Csharp/C#教程:用AddToSet更新不用MongoDB C#更新空值分享


用AddToSet更新不用MongoDB C#更新空值

使用MongoDB,当数组为null时,我无法在数组中添加en元素。 如果我从控制台添加项目,AddToSet按预期工作。 我正在使用10gen的官方C#驱动程序。

var query = Query.EQ("_id", objectId); var itemDoc = item.ToBsonDocument(); //items is an array but currently null var update = MongoDB.Driver.Builders.Update.AddToSet("items", itemDoc); // YUNoWork? //somefield doesn't exist var workingUpdate = MongoDB.Driver.Builders.Update.AddToSet("somefield", itemDoc); //works fine var collection = DataBase.GetCollection(CollectionName); collection.Update(query, update); // doesn't work collection.Update(query, workingUpdate); // works 

这是预期的行为吗? 如果是这样,是否有更通用的方法将项添加到数组?

根据一些其他评论进行了一些挖掘 – 就像你说的,如果元素不存在,它可以工作,但如果它是空的 – 它不起作用。 显然这是设计上的。

一个建议是将BsonIgnoreIfNull属性添加到数组,这意味着您的AddToSet将工作。

上述就是C#学习教程:用AddToSet更新不用MongoDB C#更新空值分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1027132.html

(0)
上一篇 2022年1月9日
下一篇 2022年1月9日

精彩推荐