0
Используя MongoDB, у меня есть коллекция history
с несколькими документами в ней. Когда initiatied, они выглядят так:Добавление вещей в документ MongoDB с использованием 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)
}
]
}
Использование PyMongo, я хотел бы запрос, который добавляет вещи в документ (например, для документа с {'category' : 'blue'}
), в timeline
элемент, как это:
{'_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)
}
]
}
Единственное, что я узнал (с collection.update_one()
) стирает предыдущее содержимое:
{'_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)
}
]
}
Благодарности
Можете ли вы показать, как вы используете 'update_one'? – Veeram
'db.my_collection.update_one ({'category': 'blue'}, {'$ set': {'timeline': [{ 'оценка': 30, 'when': datetime.datetime.now() }]}} ' –
Можете ли вы попробовать $ push вместо $ set? Оператор Push для массива и Set для поля. – Veeram