Hat*_*ard 6 c# mongodb mongodb-.net-driver
使用MongoDB,当数组为null时,我无法将en元素添加到Array.如果我从控制台添加项目,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<MyObject>(CollectionName);
collection.Update(query, update); // doesn't work
collection.Update(query, workingUpdate); // works
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?如果是这样,是否有更通用的方法将项添加到数组?
小智 11
根据其他一些评论进行了一些挖掘- 就像你说的,如果元素不存在,它可以工作,但如果它是空的 - 它不起作用.显然这是设计的.
一个建议是将BsonIgnoreIfNull属性添加到数组,这意味着您的AddToSet将工作.
| 归档时间: |
|
| 查看次数: |
4130 次 |
| 最近记录: |