如何解决删除嵌套数组mongodb中的对象
我的目标是用 "id_s": "1"
{
"_id": "5150a1199fac0e6910000002","name": "some name","p_a": [
{
"sub_name": "subname"
},{
"sub_name": "subname2","p_p": [
{
"last_level": "toDelete","id_s": "1"
},{
"last_level": "toKeep","id_s": "2"
}
]
},{
"sub_name": "subname3","id_s": "2"
}
]
}
]
}
预期的 JSON:
{
"_id": "5150a1199fac0e6910000002","p_p": [
{
"last_level": "toKeep","id_s": "2"
}
]
}
]
}
解决方法
这将为您提供 id_s: 2
位置的文档并忽略其余部分。
db.getCollection("test").aggregate(
[
{
"$match" : {
"_id" : ObjectId("5150a1199fac0e6910000002")
}
},{
"$unwind" : {
"path" : "$p_a"
}
},{
"$unwind" : {
"path" : "$p_a.p_p"
}
},{
"$match" : {
"p_a.p_p.id_s" : "2"
}
}
],{
"allowDiskUse" : false
}
);
输出:
/* 1 */
{
"_id" : ObjectId("606d83fe44c9fc09f60d0756"),"name" : "some name","p_a" : {
"sub_name" : "subname2","p_p" : {
"last_level" : "toKeep","id_s" : "2"
}
}
}
/* 2 */
{
"_id" : ObjectId("606d83fe44c9fc09f60d0756"),"p_a" : {
"sub_name" : "subname3","id_s" : "2"
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。