Как создать список встроенных массивов с помощью pymongo и обновить его (в python)?

Как я могу создать, как показано ниже, показывая размещение mongodb, используя pymongo в python mongodb, и как вставить массив адресов только для нового объекта?

  {
   _id: "joe",
   name: "Joe Bookreader",
   addresses: [
                {
                  street: "123 Fake Street",
                  city: "Faketon",
                  state: "MA",
                  zip: "12345"
                },
                {
                  street: "1 Some Other Street",
                  city: "Boston",
                  state: "MA",
                  zip: "12345"
                }
              ]
 }

1 ответ

Решение

Вам нужно использовать $ push

if (_id_exists):

        newAdrz = {"$push": {"addresses": 
                            {
                                street: "1 Some Other Street", 
                                city: "Boston",
                                state: "MA", 
                                zip: "12345"
                            }}
                   }

        self.collection.update({_id: "joe"}, newAdrz)

еще:

        root = {_id: "joe",name: "Joe Bookreader",
            addresses: [
            {
              street: "123 Fake Street",
              city: "Faketon",
              state: "MA",
              zip: "12345"
            }]
                }

          self.collection.insert(root)

Это обновит массив адресов, если _id уже существует в mongodb

Другие вопросы по тегам