0
Mit MongoDB habe ich eine history
Sammlung mit mehreren Dokumenten darin. Wenn initiatied, sie sehen diese wie:Hinzufügen von Dingen in ein MongoDB-Dokument mit PyMongo
{'_id': ObjectId('58a71211545fc61fd8b2f420'),
'category': 'blue',
'last_update': datetime.datetime(2017, 2, 14, 0, 1),
'timeline': [
{
'score': 0,
'when': datetime.datetime(2017, 2, 14, 0, 1)
}
]
}
{'_id': ObjectId('58a71211545fc61fd8b2f421'),
'category': 'red',
'last_update': datetime.datetime(2017, 2, 14, 0, 1),
'timeline': [
{
'score': 0,
'when': datetime.datetime(2017, 2, 14, 0, 1)
}
]
}
Mit PyMongo, würde ich eine Abfrage wie die Dinge in ein Dokument (zum Beispiel für das Dokument mit {'category' : 'blue'}
), in dem timeline
Elemente, so fügt hinzu:
{'_id': ObjectId('58a71211545fc61fd8b2f420'),
'category': 'blue',
'timeline': [
{
'score': 0,
'when': datetime.datetime(2017, 2, 14, 0, 1)
},
{
'score': 10,
'when': datetime.datetime(2017, 2, 14, 0, 2)
},
{
'score': 20,
'when': datetime.datetime(2017, 2, 14, 0, 3)
}
]
}
Das einzige, was ich (mit collection.update_one()
) fand heraus, den vorherigen Inhalt löscht:
{'_id': ObjectId('58a71211545fc61fd8b2f420'),
'category': 'blue',
'timeline': [
{
'score': 10,
'when': datetime.datetime(2017, 2, 14, 0, 2)
},
{
'score': 20,
'when': datetime.datetime(2017, 2, 14, 0, 3)
}
]
}
Dank
Können Sie zeigen, wie Sie 'update_one' verwenden? – Veeram
'db.my_collection.update_one ({'Kategorie': 'blau'}, {'$ set': {'Zeitleiste': [{ 'score': 30, 'when': datetime.datetime.now() }]}} ' –
Können Sie $ push anstelle von $ set versuchen? Push-Operator für Array und Set für Feld. – Veeram