编辑: 我不想使用JavaScript的方法。 我正在寻找使用MongoDB C#2.0驱动程序完成此操作的方法(我知道可能不可能,但我希望有人知道解决方案)。
我正在尝试更新嵌套在mongodb主文档中的数组中项的值。
我正在寻找一种强类型方式来完成这个问题。 我正在使用Mongodb c# 2.0驱动程序
我可以通过弹出元素、更新值然后重新插入来完成它。但这感觉不对,因为我可能会覆盖在此期间写入的内容。
这是我迄今为止尝试过但没有成功的方法:
private readonly IMongoCollection<TempAgenda> _collection;
void Main()
{
var collectionName = "Agenda";
var client = new MongoClient("mongodb://localhost:27017");
var db = client.GetDatabase("Test");
_collection = db.GetCollection<TempAgenda>(collectionName);
UpdateItemTitle(1, 1, "hello");
}
public void UpdateItemTitle(string agendaId, string itemId, string title){
var filter = Builders<TempAgenda>.Filter.Eq(x => x.AgendaId, agendaId);
var update = Builders<TempAgenda>.Update.Set(x => x.Items.Single(p => p.Id.Equals(itemId)).Title, title);
var result = _collection.UpdateOneAsync(filter, update).Result;
}
$
运算符。我不是随机从袋子里拿出来的。 - Blakes Seven