arrays - 删除 mongoDB 嵌套数组中的特定对象
问题描述
我有一个名为 myCollection 的 mongoDB 集合,在 myCollection 内部有不同的文档,其结构如下:
{
"id": 1234,
"posts": [
[
{
"id": "0.0",
"name": "john",
"message": "hello"
},
{
"id": "0.1",
"name": "jane",
"message": "good morning"
},
{
"id": "0.2",
"name": "josh",
"message": "good evening"
}
],
[
{
"id": "1.0",
"name": "mark",
"message": "good lunch"
}
],
[
{
"id": "2.0",
"name": "john",
"message": "bye bye"
},
{
"id": "2.1",
"name": "mark",
"message": "hi"
}
]
]
}
谁能告诉我如何删除嵌套“帖子”数组中的特定对象?例如,围绕 id=1234 的文档的这个特定对象启动查询:
{
"id": "0.1",
"name": "jane",
"message": "good morning"
}
我希望 id=1234 的对象的结构变成这样:
{
"id": 1234,
"posts": [
[
{
"id": "0.0",
"name": "john",
"message": "hello"
},
{
"id": "0.2",
"name": "josh",
"message": "good evening"
}
],
[
{
"id": "1.0",
"name": "mark",
"message": "good lunch"
}
],
[
{
"id": "2.0",
"name": "john",
"message": "bye bye"
},
{
"id": "2.1",
"name": "mark",
"message": "hi"
}
]
]
}
解决方案
您需要提取文档并触发更新。
db.myCollection.update(
{ id : 1234 },
{
$pull : {"posts.0" : {
"id": "0.1",
"name": "jane",
"message": "good morning"
}
}
})
推荐阅读
- xcode - Xcode 10.0 中缺少工具托盘
- amazon-web-services - How do allow inbound traffic only from ELB?
- r - 如何处理 R 中具有多索引列的数据帧?
- tensorflow - Keras Step 迭代: generator_output = next(output_generator)
- javascript - 将 .txt 文件中的单词转换为数组?
- ethereum - 缩短合约功能的输入
- observer-pattern - java反应流-订阅者可以返回值吗?
- javascript - 在 Typescript 中将 JSON 字符串转换为 JAVASCRIPT 对象
- c++ - C++ Boost::thread - 内核:陷阱一般保护
- android - Android:可以直接将麦克风保存到 SQLite,而无需读取/写入临时文件?