MongoDB + Nodejs:增加嵌套数组中数组的特定值

时间:2017-05-09 16:13:44

标签: node.js mongodb increment

我的MongoDB文档具有以下结构:

{ _id : 'some_ID',
  matrix:  [[0,0,0][0,0,0][0,0,0]]
}

我希望我的NodeJS服务器增加 第二个数组 第二个值 矩阵 ,给定特定ID。

即我想要:

{ _id : 'some_ID',
  matrix:  [[0,0,0][0,1,0][0,0,0]]
}

我错误地尝试了:

db.collection('myCollection').update({ _id  :  'some_ID'  },
                                     { $inc :  { matrix[1][1] : 1 } }
                                    );

对正确的方法有任何猜测吗?

谢谢:)

2 个答案:

答案 0 :(得分:0)

您必须使用聚合来获取该元素,然后您可以增加它。 看看这个 - MongoDB multidimensional array projection

我建议在你的代码逻辑中处理这个问题,在那里你得到数组,增加索引并更新数据库。 希望这有帮助

答案 1 :(得分:0)

您可以使用dot notation并指定数组索引来增加值:

db.collection('myCollection').update({ _id: 'some_ID' },
                                     { $inc: { "matrix.1.1": 1 } }
                                    );