Je veux upsert un document avec le pilote mongo-ruby en utilisant quelque chose comme le suivantes-mongo-ruby-pilote ne crée pas un nouveau document sur upsert quand il y a une coutume _id
id = "#{params[:id]}:#{Time.now.strftime("%y%m%d")}"
# db.collection('metrics').insert({'_id' => id})
db.collection('metrics').update(
{ '_id' => id },
{ '$inc' => { "hits" => 1 } },
{ 'upsert' => true }
)
En ce moment cela ne mettra à jour que les documents existants, et n'en créera pas un s'il n'existe pas déjà. La seule façon d'exécuter les deux actions est de décommenter la commande insert() au-dessus.
Si j'utilise la console mongo et que j'essaie de le faire directement (sans avoir besoin de l'insert()), cela fonctionne comme prévu.