mongodb - 在mongodb,节点中按兄弟名称插入数组中的元素
问题描述
我想通过匹配兄弟名称在数组中插入一个元素。认为-
{
"_id": {
"$oid": "60e544a5e0762b0b2ef6657e"
},
"user0": "a",
"details": [{
"name": "jon",
"things": [{
"name": "car",
"work": "travel"
}, {
"name": "phone",
"work": "network"
}]
},{
"name": "steve",
"things": [{
"what": "car",
"work": "travel"
}, {
"what": "phone",
"work": "network"
}]
}]
}
我想在“things”数组中插入一个名称为“steve”的对象,现在我正在这样做,但它不起作用
collection.updateOne({_id:docs[0]._id}, {$push:{"details.$[]":{things:req.body.data}}});
解决方案
您想使用arrayFilters,它使您能够使用查询更新数组中的特定元素,在本例中是名称为“steve”的元素:
db.collection.update(
{
_id:docs[0]._id
},
{
$push: {
"details.$[elem].things": req.body.data
}
},
{
arrayFilters: [
{
"elem.name": "steve"
}
]
})
推荐阅读
- output - @ngrx Angular 6/7 通过组件发射对象
- python - BeautifulSoup 成功写入 html 但 find_all 什么也不返回
- asp.net-web-api - 如何在 Asp Core Api 中触发“配置”方法
- python - 在 Mac OS 上运行 vim-lldb
- sql - VBA SQL 右连接 - 连接操作中的语法错误
- angular - Angular 7 和 Reactive form Array 正在返回无法找到带有路径的控件的错误
- ios - 有谁知道为什么 drawViewHierarchyInRect 在 iPhone X 和 iPad Pro 上速度较慢?
- php - Symfony 3.4 扩展在迁移后不工作
- loops - for循环中的索引超出范围(重复)
- javascript - 使用 Java 脚本在表格中选择复选框