首页 > 解决方案 > 在 mongodb (Node.js) 中更新子文档

问题描述

我有以下收藏

Channels [
 {
   _id:1
   users:[
    {
     _id:1
     skipRounds:1
    },
    {
     _id:2
     skipRounds:3
    },       
   ]
 },
 {
   _id:2
   users:[
    {
     _id:1
     skipRounds:3
    },
    {
     _id:2
     skipRounds:5
    },       
   ]
 },   
] 

我想知道如何减少用户子集合上的 skipRounds 属性的值。谁能告诉我如何使用 mongodb node.js 客户端执行此操作?

标签: node.jsmongodb

解决方案


使用$inc递减和定位 $[]将其应用于所有元素。例如:

db.Channels.updateMany(
    {"users.skipRounds": {$exists:true}}, 
    {$inc: {"users.$[].skipRounds": -1}}
);

推荐阅读