sql >> Databasteknik >  >> NoSQL >> MongoDB

Uppdatera ett MongoEngine-dokument med ett python-dikt?

Ganska sent till spelet här, men FWIW, MongoEngine har en inbyggd lösning för detta.

Oavsett om du vill create eller update du kan göra följande:

class Pets(EmbeddedDocument):
    name = StringField()

class Person(Document):
    name = StringField()
    address = StringField()
    pets = ListField(EmbeddedDocumentField(Pets))

p = Person(**{
    "name": "Hank",
    "address": "Far away",
    "pets": [{"name": "Scooter"}]
})
p.save()

Enda skillnaden för update måste du ange ett id . På så sätt kommer mongoengine inte att duplicera ett dokument med ett befintligt id och uppdatera den istället.



  1. Hur man startar en anpassad RQ-arbetare i en Docker Container (Python, Flask och Redis)

  2. Maximal anropsstackstorlek överskrids vid infogning av 10 000 dokument

  3. MongoDb sökprestanda

  4. Så här fixar du VARNINGAR när du kör Redis:alpine Docker-bilden