Я явно не понимаю, как я обновляю/вставляю поддокумент в существующий документ. Я попробовал следующее:Обновление/вставка поддокумента mongodb
query = aCollection.find_one({stuffToFind})
aCollection.update(query,
{"$set": {"subDoc" : {"1" : String, "2" : datetime.datetime.now(), "3" : otherString}}})
это работает только один раз, но я хочу, чтобы постоянно менять subDoc своих данных 1,2 и 3, если этот код выполняется. find_and_modify также терпит неудачу, потому что он, кажется, перезаписывает весь документ, удаляя все остальные поля, но идентификатор и те, которые указаны в обновлении. Поскольку я довольно новичок в MongoDB, было бы неплохо, если бы кто-нибудь мог дать мне пример кода, как выяснить мою проблему.
Edit: без «$ набора» заявление остается без изменений, а на втором исполнении ..
Edit2: это, кажется, работает, Eventhough я не могу редактировать пораженную (JSON) документ непосредственно в MonjaDB больше: D
aCollection.update(query(but this time not as a variable),
{"$set" : {"subDoc.1" : Sting, "subDoc.2" : datetime.datetime.now(), "subDoc.3" : otherString}})
Я не знаю, почему это работает так, может быть, кто-то может объяснить, что я сделал неправильно ..
Спасибо dvance,
Codehai
спасибо большое за объяснение! – Codehai