Prima di tutto, quando fai una domanda come questa è molto utile aggiungere informazioni sul perché non funziona (ad esempio copia l'errore).
La tua query non riesce perché stai mescolando $ operatori con override del documento. È necessario utilizzare l'operatore $ set per i campi user_id
e anche per il testo (sebbene in questo esempio la parte user_id
non sia pertinente).
Quindi convertire questo pymongo query:
db.test.update({user_id:1},
{$set:{text:"Lorem ipsum", updated:new Date()}, $inc:{count:1}},
true,
false)
Ho rimosso il user_id
nell'aggiornamento perché non è necessario. Se il documento esiste, questo valore sarà già 1. Se non esiste, l'upsert copierà la parte di query del tuo aggiornamento nel nuovo documento.
fonte
2011-10-24 09:56:25