请告诉我如何在聚合中更新带条件的字段?
[{_id:"1",val:"admin",...},{_id:"2",val:'employee',...},{_id:"3",val:"admin",...},...]
新数据:“管理员-en”、“雇员-en”
Collection.aggregate([{
$project: {
$cond: {
if: {$eq:"admin"},
then: {$set:"admin-en"},
if: {$eq:"employee"},
then: {$set: "employee-en"}
}
}
}])
我很可能做错了什么。也许有其他方法可以使用聚合来更新具有条件的字段
1条答案
按热度按时间q8l4jmvw1#
不能在
aggregate
查询中更新,但可以在update
查询中使用聚合阶段。请选中Updates with Aggregation Pipeline。顺便说一句,我不确定我是否理解正确,但也许你只需要这个查询:
例如here。
但是,如果你想使用
if/else
语句,你可以尝试使用$switch(即if/else
结构):例如here。
同样只使用
if/else
的例子是here。请注意:
$val
。$val
。