如何在MongoDB中将角色为user的用户nickName批量更新为小写?
解决MongoDB updateMany中$toLower不生效的问题
问题核心:普通的
updateMany操作(非聚合管道模式)不支持在$set中使用字段引用(如"$nickName")和聚合表达式(如$toLower),这是你原有代码失效的原因。正确实现方式:使用聚合管道作为
updateMany的第二个参数,这样就能利用聚合操作符处理字段值:
const users = await userModel.updateMany( { rol: 'user' }, [ { $set: { nickName: { $toLower: "$nickName" } } } ] );
- 说明:将更新语句的第二个参数从普通对象改为数组形式的聚合管道后,
$set里就可以通过$toLower引用并转换原有nickName字段的大小写,从而批量完成所有目标用户的昵称小写转换。
内容的提问来源于stack exchange,提问作者Emanuel bass
相关产品推荐
相关产品推荐

