arrays - 如何将一个对象插入到mongo数组中的另一个对象中

标签 arrays node.js mongodb express javascript-objects

我有一个 mongo 数据库,我在其中创建了一个记录,该记录在数组中有一个对象(例如,员工:[{name:Bob, Age: 30}]。我现在想更新数组中的对象,使其看起来像 [{name:Bob, age: 30, pay:400}]。我如何在 Node/快速 route 做到这一点?如果我使用类似的东西:

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 上推送对象和数组等的问题,但我找不到与这种情况类似的例子。谢谢!

最佳答案

你需要有你要改变的对象的索引,然后你这样写:

'array.index.keyToUpdate' .

如果您在更新操作之前有对象的索引,您可以这样做:

{$set: { 'employee.<indexToChange>.pay': 400 }} .

要使其动态化并基于您可以执行的查询:

update({ 'employee.name': 'Bob' }, {$set: { 'employee.$.pay': 400 }}) .

在本例中为 $代表数组中第一个匹配的对象。

关于arrays - 如何将一个对象插入到mongo数组中的另一个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54524127/

相关文章:

c++ - 堆栈实现

arrays - 在 Swift 中将 JSON 嵌套到数组

php - 为什么 PHP 中排序数组比非排序数组慢

javascript - 命令在nodejs中的execSync内不起作用

javascript - Node Express 逐个用户更改静态文件夹

Mongodb:多个集合或一个带索引的大集合

java - 将整数转换为整数数组或二进制

node.js - 使用(moSTLy)一个代码库构建动态 HighCharts 和图像 Highcharts?

java - Mongodb 非法访问异常

javascript - 如何将值推送到作为 mongodb 中对象的属性的数组