【发布时间】:2019-06-28 15:57:36
【问题描述】:
我有一个 mongo db,我在其中创建了一个记录,该记录在数组中包含一个对象(例如,员工:[{name:Bob,Age:30}]。我现在想更新数组中的对象,使其看起来像 [{name:Bob, age: 30, pay:400}]。如何在节点/快速路由中执行此操作?如果我使用类似:
router.put("/addPay/:id",function(req,res){
Team.findByIdAndUpdate(req.params.id,{$push:{employee: {$each:
[{pay:req.body.pay}]}}},........
这只是将 {pay: XXX} 作为一个单独的对象推送到数组 [{name:Bob, age: 30, pay:400}, {pay: XXX}] 中,而不是将其插入到已经存在的对象中。我知道有很多关于在 SO 上推入对象和数组等的问题,但我找不到与这种情况类似的例子。谢谢!
【问题讨论】:
-
req.body是否包含员工姓名? -
不是支付金额(例如 400)。如果我 console.log 它,我会从我的表单中获取传递的值,这样就可以了......
-
那么你怎么知道哪个员工应该设置这个值呢?该数组中是否始终只有一个值?
-
没错——只有一名员工。我使用的模型模式实际上比这更复杂 - 我只是为了解决我的问题。
-
好的,那么@cowCrazy 提供的答案应该适合你,就用
employee.0.pay
标签: arrays node.js mongodb express javascript-objects