如何增加mongodb中的计数?

时间:2016-02-22 00:07:20

标签: javascript node.js mongodb express

每次点击我的按钮,我想增加数据库中的数量。

这是我的角度指令:

var count = 0
  $scope.postNote = function () {
    var deferred = $q.defer()
    var token = $scope.userInfo.$$state.value.accessToken
    $scope.userInfo.$$state.value.cart.quantity.push(count += 1)
    $http.put('/api/me/cart?access_token=' + token, $scope.userInfo.$$state.value)
      .then(function (result) {
        deferred.resolve(result)
      }, function (err) {
        deferred.reject(err)
      })
    return deferred.promise
  }

这是我的api:

router.put('/me/cart', wagner.invoke((User) => {
    return (req, res) => {
      try {
        var cart = req.body.cart
      } catch (e) {
        return res.status(status.BAD_REQUEST)
                  .json({ error: 'Sorry, you have failed in life' })
      }
      req.user.data.cart = cart
      req.user.save((err, user) => {
        if (err) {
          return res.status(status.INTERNAL_SERVER_ERROR)
                    .json({ error: err.toString() })
        }
        return res.json(user)
      })
    }
  }))

最后,这就是我的文档的外观:

"_id" : ObjectId("56ca4dc77aaab42f074250ba"),
    "password" : "$2a$10$KnIVYcIjE/AYfUnMgkWhc.bQ1Luxo8XRUq/lnuPXKsOKR8YEz2m7O",
    "username" : "ken",
    "data" : {
        "cart" : {
            "quantity" : [
                1,
                2,
                3,
                4,
                5
            ]
        }
    },
    "__v" : 0

我只想在每次单击时增加数量元素。

1 个答案:

答案 0 :(得分:0)

我明白了。我在我的指令中做了改变。

var count = 0
$scope.postNote = function () {
    var deferred = $q.defer()
    var token = $scope.userInfo.$$state.value.accessToken
    $scope.userInfo.$$state.value.cart.quantity = count++
    $http.put('/api/me/cart?access_token=' + token, $scope.userInfo.$$state.value)
      .then(function (result) {
        deferred.resolve(result)
      }, function (err) {
        deferred.reject(err)
      })
    return deferred.promise
  }