如何在mongoDB中删除对象内部的对象?蟒蛇

时间:2020-08-06 08:24:55

标签: python-3.x mongodb

我正在尝试删除MongoDB中对象内部的对象,目前,我的数据结构如下所示。

Mongo的数据结构:

id: 145796357695733760
Name: "@x414141"
Money: 252702.84199999995
stocks: Object
     |__ MSFT: Object
     |       |_ amount: 0
     |__ AAPL: Object
     |       |_ amount: 0
     |__AMZN: Object
             |_ amount: 0

我当前的代码是:

    for dataBaseObject in mongoReturn['stocks'].items():

        if dataBaseObject[1]['amount'] == 0:
            print(dataBaseObject)
            print(dataBaseObject[0])
            print(type(dataBaseObject))
            collection.update_one({"_id": user.id},
                                  {
                                      "$pull":
                                          {
                                              "stocks":
                                                  {
                                                      "MSFT"
                                                  }
                                          }
                                  })

但是,它拒绝让我从“库存”对象中提取“ MSFT”值。 有人可以告诉我我要去哪里了吗?

1 个答案:

答案 0 :(得分:0)

好尝试。 $pull用于从数组中删除对象。

$ pull运算符从一个现有数组中删除一个或多个与指定条件匹配的值的所有实例。

您可以使用$unset

db.test.update({},{"$unset":{"stocks.MSFT":""}})