sql >> Databáze >  >> NoSQL >> MongoDB

Souběžná aktualizace MongoDB na stejný dokument se nechová atomicky

Použijte podmíněné aktualizace a zkontrolujte počet aktualizovaných dokumentů, abyste zjistili, zda k aktualizaci došlo.

require 'mongo'

client = Mongo::Client.new(['localhost:14400'])

coll = client['coll']

coll.delete_many
coll.insert_one(foo: 1)

rv = coll.update_one({foo: 1}, '$set' => {foo: 2})
if rv.modified_count == 1
  puts 'Updated'
end

rv = coll.update_one({foo: 1}, '$set' => {foo: 2})
if rv.modified_count == 1
  puts 'Updated'
end

https://github.com/p -mongo/tests/blob/master/query-conditional-update/test.rb




  1. Instalace Mongoose v NodeJS 0.10.8

  2. Jak poskytovat můj obsah pomocí nodejs vm na cloudu Google

  3. mnoho pro mnoho vztah s nosql (mongodb a mongoose)

  4. Zkopírujte první hodnotu pole do jiného pole v MongoDB