# 数组更新
# 更新指定的元素
db.getCollection('common_knowledge_20201216_backup').update(
{"subject" : "31"},
{ $set : { "knowledge.$[c0].children.$[c1].children.$[c2]" : { "code" : "03031001001004", "name" : "元素与集合的关系", "root" : false, "leaf" : true, "children" : [] } } },
{ arrayFilters: [ { "c0.code": "03031001" },{ "c1.code": "03031001001" },{ "c2.code": "03031001001004" }], multi: false}
);
1
2
3
4
5
6
2
3
4
5
6
# 追加元素
db.getCollection('common_knowledge_20201216_backup').update(
{"subject" : "31"},
{ $push : { "knowledge.$[c0].children.$[c1].children.$[c2].children" : { "code" : "004", "name" : "004"} } },
{ arrayFilters: [ { "c0.code": "03031001" },{ "c1.code": "03031001001" },{ "c2.code": "03031001001004" }], multi: false}
);
1
2
3
4
5
2
3
4
5
# 追加元素到指定位置
db.getCollection('common_knowledge_20201216_backup').update(
{"subject" : "31"},
{ $push : { "knowledge.$[c0].children.$[c1].children.$[c2].children" : {$each:[{ "code" : "0014", "name" : "0014"}], $position:1} } },
{ arrayFilters: [ { "c0.code": "03031001" },{ "c1.code": "03031001001" },{ "c2.code": "03031001001004" }], multi: false}
);
db.getCollection('common_knowledge_20201216_backup').update(
{"subject" : "31"},
{ $push : { "knowledge.$[c0].children.$[c1].children.$[c2].children" : { $each : [{ "code" : "111", "name" : "111"}], $position : -1 } } },
{ arrayFilters: [ { "c0.code": "03031001" },{ "c1.code": "03031001001" },{ "c2.code": "03031001001004" }], multi: false}
);
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 删除指定元素
db.getCollection('common_knowledge_20201216_backup').update(
{"subject" : "31"},
{ $pull : { "knowledge.$[c0].children.$[c1].children.$[c2].children" : { "code" : {$in:["012", "003","001", "002","111"]}} } },
{ arrayFilters: [ { "c0.code": "03031001" },{ "c1.code": "03031001001" },{ "c2.code": "03031001001004" }], multi: true}
);
1
2
3
4
5
2
3
4
5
# 删除根节点
db.getCollection('common_knowledge_20201216_backup').update(
{"subject" : "31"},
{ $pull : { "knowledge" : { "code" : "030310021"} } },
{ arrayFilters: [ ], multi: true}
);
1
2
3
4
5
2
3
4
5
← 常用命令