# 数组更新

# 更新指定的元素

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

# 追加元素

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

# 追加元素到指定位置

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

# 删除指定元素

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

# 删除根节点

db.getCollection('common_knowledge_20201216_backup').update(
    {"subject" : "31"},
    { $pull : { "knowledge" : { "code" : "030310021"} } },
    { arrayFilters: [ ], multi: true}
);
1
2
3
4
5
更新时间: 2021-04-28 09:24:43