如何在蒙戈阵列内插入的对象到另一个对象
我有一个蒙戈DB在那里我有创建一个数组中的对象(例如员工记录:[{名称:鲍勃,年龄:30}]我现在想更新数组内的对象,所以它看起来像[{名称:鲍勃,年龄:30,工资:400}]我如何做到这一点的一个节点/快递航线内如果我使用的东西等。?
router.put("/addPay/:id",function(req,res){
Team.findByIdAndUpdate(req.params.id,{$push:{employee: {$each:
[{pay:req.body.pay}]}}},........
这只是推{付:XXX}作为一个单独的对象到阵列[{名称:鲍勃,年龄:30,付:400},{付:XXX}],而不是将其插入到对象已经存在。我知道有很多关于推入对象和数组等对SO的问题,但我无法找到一个类似的例子这种情况。谢谢!
回答如下:你需要有你想要改变对象的索引,那么你写的是这样的:
'array.index.keyToUpdate'
。
如果在更新操作前有对象的索引,你可以做这样的:
{$set: { 'employee.<indexToChange>.pay': 400 }}
。
为了使动态的,基于你可以做查询:
update({ 'employee.name': 'Bob' }, {$set: { 'employee.$.pay': 400 }})
。
在这种情况下,$
代表阵列中的第一个匹配的对象。
如何在蒙戈阵列内插入的对象到另一个对象
我有一个蒙戈DB在那里我有创建一个数组中的对象(例如员工记录:[{名称:鲍勃,年龄:30}]我现在想更新数组内的对象,所以它看起来像[{名称:鲍勃,年龄:30,工资:400}]我如何做到这一点的一个节点/快递航线内如果我使用的东西等。?
router.put("/addPay/:id",function(req,res){
Team.findByIdAndUpdate(req.params.id,{$push:{employee: {$each:
[{pay:req.body.pay}]}}},........
这只是推{付:XXX}作为一个单独的对象到阵列[{名称:鲍勃,年龄:30,付:400},{付:XXX}],而不是将其插入到对象已经存在。我知道有很多关于推入对象和数组等对SO的问题,但我无法找到一个类似的例子这种情况。谢谢!
回答如下:你需要有你想要改变对象的索引,那么你写的是这样的:
'array.index.keyToUpdate'
。
如果在更新操作前有对象的索引,你可以做这样的:
{$set: { 'employee.<indexToChange>.pay': 400 }}
。
为了使动态的,基于你可以做查询:
update({ 'employee.name': 'Bob' }, {$set: { 'employee.$.pay': 400 }})
。
在这种情况下,$
代表阵列中的第一个匹配的对象。