【问题标题】:how to add the number to existing field如何将数字添加到现有字段
【发布时间】:2021-02-05 21:27:54
【问题描述】:

我有一个积分表,我需要根据表现更新值。有可能做到

表格

[
  {
    "id": 1,
    "points": 34
  },
  {
    "id": 1,
    "points": 63
  }
]

查询

db.collection.update({
  id: 1
},
{
  "$set": {
    "points": "points" + 10
  }
})

预期输出

[
  {
    "_id": ObjectId("5a934e000102030405000000"),
    "id": 1,
    "points": 44
  },
  {
    "_id": ObjectId("5a934e000102030405000001"),
    "id": 1,
    "points": 63
  }
]

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    你可以使用$inc:

    db.collection.update({
      id: 1
    },
    {
      "$inc": {
        "points": 10
      }
    })
    

    没有用于递减的$dec,而是使用带有负数的$inc

    你真的在使用猫鼬吗?它看起来像一个普通的 mongo 节点驱动程序查询。如果你有 Mongoose 模型,可以使用updateMany

    【讨论】:

    • 这是否不适用于猫鼬
    • @AsZik $inc 也适用于猫鼬 updateMany。这看起来像Collection.updateMany({id: 1}, {$inc: {points: 10}})。 Mongoose 只是一个让 MongoDB 交互更容易的库。您可以使用 MongoDB 文档进行可以通过 Mongoose 方法执行的操作
    猜你喜欢
    • 1970-01-01
    • 2022-07-27
    • 2021-04-05
    • 1970-01-01
    • 2011-07-16
    • 2016-07-17
    • 2023-03-15
    • 2012-09-26
    • 2019-08-22
    相关资源
    最近更新 更多