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

как безопасно да актуализирате пореден номер в mongodb

За да направите това атомарно, всичките ви три примерни документа трябва да са част от един и същ документ. MongoDB извършва операции само атомно върху прости документи:http://www.mongodb.org/ display/DOCS/Atomic+Operations

Ако са част от един документ, следното ще промени реда на втория и третия поддокумент:

> db.so.find().pretty();{ "_id" :ObjectId("4f55e7ba362e2f2a734c92f8"), "subs" :[ { "author_id" :"a", "class" :"principle", "content_id" :null, "host_id" :null, "modified_date" :1330935540, "order" :1, "pub_date" :1330935540, "score" :0, "text" :"Hello World!", "vote_down_count" :0, "vote_up_count" :0 }, { "author_id" :"a", "class" :"principle", "content_id" :null, "host_id" :null, "modified_date" :1330935538, "order" :2, "pub_date" :1330935538, "score" :0, "text" :"Радвам се да се запознаем.", "vote_down_count" :0, "vote_up_count" :0 }, { "author_id" :"a", "class" :"принцип", "content_id":null, "host_id":null, "modified_date" :1330935548, "order" :3, "pub_date" :1330935548, "score" :0, "text" :"Страхотно!", "vote_down_count" :0, "vote_up_count" :0 } ]}

Заявка:

db.so.update( { _id:new ObjectId("4f55e7ba362e2f2a734c92f8")}, { $set:{ 'subs.1.order':3, 'subs.2.order':2 } }); 

Резултат:

> db.so.find().pretty();{ "_id" :ObjectId("4f55e7ba362e2f2a734c92f8"), "subs" :[ { "author_id" :"a", "class" :"principle", "content_id" :null, "host_id" :null, "modified_date" :1330935540, "order" :1, "pub_date" :1330935540, "score" :0, "text" :"Hello World!", "vote_down_count" :0, "vote_up_count" :0 }, { "author_id" :"a", "class" :"principle", "content_id" :null, "host_id" :null, "modified_date" :1330935538, "order" :3, "pub_date" :1330935538, "score" :0, "text" :"Радвам се да се запознаем.", "vote_down_count" :0, "vote_up_count" :0 }, { "author_id" :"a", "class" :"принцип", "content_id":null, "host_id":null, "modified_date" :1330935548, "order" :2, "pub_date" :1330935548, "score" :0, "text" :"Страхотно!", "vote_down_count" :0, "vote_up_count" :0 } ]}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $size

  2. Mongodb – Грешка при Mongoimport невалиден знак

  3. Свързване към MongoDb с SSL от приложението JAVA

  4. Не може да се покажат само точките в определен диапазон (кръг) с помощта на функцията .getBounds() (листовка)

  5. Как да върна JSON данни от php MongoCursor