Как удалить объект внутри объекта в mongoDB? Python - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь удалить объект внутри объекта в MongoDB, в настоящее время моя структура данных выглядит так.

Структура данных Mon go:

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 голосов
/ 06 августа 2020

Хорошая попытка. $pull используется для удаления объекта из массива.

Оператор $ pull удаляет из существующего массива все экземпляры значения или значений, которые соответствуют указанному условию.

Вы можете использовать $ unset

db.test.update({},{"$unset":{"stocks.MSFT":""}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...