Прежде всего, когда вы задаете такой вопрос, очень полезно добавить информацию о причине его сбоя (например, скопировать ошибку).
Ваш запрос не выполняется, потому что вы смешиваете $ operator с переопределением документа,Вы должны использовать оператор $ set для user_id
и текстовых полей (хотя часть user_id
в вашем обновлении не имеет значения в этом примере).
Так что конвертируйте это в запрос pymongo:
db.test.update({user_id:1},
{$set:{text:"Lorem ipsum", updated:new Date()}, $inc:{count:1}},
true,
false)
Я удалил user_id
в обновлении, потому что это не нужно.Если документ существует, это значение будет уже равно 1. Если он не существует, upsert скопирует часть запроса вашего обновления в новый документ.