2016-12-30 72 views
0

如果你有两个独立的更新对象:MongoDB的C#串连更新对象

var U1 = Builders<T>.Update.Set(_ => _.A, null); 
var U2 = Builders<T>.Update.Set(_ => _.B, null); 

你怎么可以把它们连,这样的结果将是:

var U = Builders<T>.Update.Set(_ => _.A, null).Set(_ => _.B, null); 

我试着这样做:

var U = U1 & U2; 

,并同时适用于过滤器,它不更新

工作

回答

1

您可以通过追加新集来添加到现有更新定义中。

var U1 = Builders<T>.Update.Set(_ => _.A, null); 
var U = U1.Set(_ => _.B, null); 

我承认,这是一个有点滑稽的是,&运营商不能用于更新定义。另外:你自己的代码也暗示了这一点。

在我们的一个项目中,我们在循环中使用它来构造一组组合操作。

+0

'$ addToSet'不会以流利的方式添加另一个Set(),这是OP正在尝试做的事情。相反,它[向数组添加元素](https://docs.mongodb.com/manual/reference/operator/update/addToSet/)。 – CodeCaster

+0

感谢您的单挑。据此编辑。 –