如何从MongoDB文件中删除嵌套对象的属性?

时间:2015-07-13 13:07:27

标签: mongodb

我有一个像这样的MongoDB文档:

{
    "_id": ObjectId("5589044a7019e802d3e9dbc5"),
    "sessionId": LUUID("f49d4280-ced0-9246-a3c9-a63e68e1ed45"),
    "teamId": LUUID("6ef7d1a8-f842-a54c-bd8c-daf6481f9cfc"),
    "variableId": LUUID("59d1b512-eee2-6c4b-a5b5-dda546872f55"),
    "values": {
        "725400": 691.0000000000000000,
        "725760": 686.0000000000000000,
        "726120": 683.0000000000000000,
        "726480": 681.0000000000000000,
        "726840": 679.0000000000000000,
        "727200": 678.0000000000000000,
        "727560": 677.0000000000000000,
        "727920": 676.0000000000000000
    },
    "variableType": 2,
    "isSet": false,
    "teamNumber": 2,
    "simPageIds": []
}

我有一个场景,我必须从我的文档的"values"属性中删除特定属性。例如,我想从"727920"属性中删除值"values"

由于"Values"不是数组,因此我无法在此使用$pull。我需要的是删除

来自"727920" : 676.0000000000000000

"values"

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:8)

使用$unset,如下所示:

db.collectionName.update({},{"$unset":{"values.727920":""}})

修改 要更新多个文档,请使用update options,如:

db.collectionName.update({},{"$unset":{"values.727920":""}},{"multi":true})