3
があった場合、私は今following-のmongo-rubyのドライバは、カスタム_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 }
)
のようなものを使用してのmongo-rubyのドライバで文書をアップサートしたいアップサートに新しい文書を作成しません既存の文書のみを更新し、存在しない場合は作成しません。両方のアクションを実行する唯一の方法は、上のinsert()コマンドのコメントを外す場合です。
私はmongoコンソールを使用して、このupsertを(insert()の必要なしに)直接実行しようとすると、期待通りに動作します。