【发布时间】:2016-10-14 15:59:47
【问题描述】:
对于 MongoDB,使用 C# 驱动程序,我需要为属性 x 构造一个更新
- 将
x.y设置为42 - 如果
x为空,则有效 - 如果
x已设置为具有其他属性的对象(在这种情况下,我需要保留这些属性),这也有效。
换句话说,我需要为属性x 构建一个更新,将x.y 设置为42,并同时作用于以下两个输入文档:
{
"x": null
}
should become
{
"x": {
"y": 42
}
}
和
{
"x": {
"z": 66
}
}
should become
{
"x": {
"y": 42,
"z": 66
}
}
天真的做法
Builders<BsonDocument>.Update.Set("x.y", 42)
导致错误信息
cannot use the part (x of x.y) to traverse the element ({x: null})
【问题讨论】: