MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Едновременната актуализация на MongoDB на същия документ не се държи атомарно

Използвайте условни актуализации и проверете броя на актуализираните документи, за да видите дали актуализацията се е случила.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Проблем с достъпа до Mongodb на Amazon EC2

  2. Натиснете и задайте операции в същата актуализация на MongoDB

  3. mongodb нежелано премахване на празно поле при актуализация

  4. Morphia/MongoDB:Достъп до обект за вграждане от @Embedded обект

  5. не може да направи основен mongo shell скрипт с удостоверяване