我一直在寻找一个解决方案,使用最新的C#3.6驱动程序,这是我最终解决的问题。这里的关键是
"$[]"
根据MongoDB的说法,这是3.6版的新版本。见
https://docs.mongodb.com/manual/reference/operator/update/positional-all/#up.
S
[]
更多信息。
代码如下:
{
var filter = Builders<Scene>.Filter.Where(i => i.ID != null);
var update = Builders<Scene>.Update.Unset("area.$[].discoveredBy");
var result = collection.UpdateMany(filter, update, new UpdateOptions { IsUpsert = true});
}
有关更多内容,请参阅我原来的文章:
Remove array element from ALL documents using MongoDB C# driver