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

MongoDB - Добавяне към набор и увеличаване

Ако желаете да превключите от списък към хеш (обект), можете да направите това атомарно.

От документи :"$inc ... увеличава полето с числовата стойност, ако полето присъства в обекта, в противен случай задава полето на числовата стойност."

{ $inc : { field : value } }

И така, ако можете да преработите вашия контейнер и обект:

words: [
  {
    'word': 'foo',
    'count': 1
  },
  ...
]

до:

words: {
  'foo': 1,
  'other_word: 2,
  ...
}

можете да използвате операцията update с:

{ $inc: { 'words.foo': 1 } }

което би създало { 'foo': 1 } ако 'foo' не съществува, иначе увеличава foo.

Напр.:

$ db.bar.insert({ id: 1, words: {} });
$ db.bar.find({ id: 1 })
[ 
  {   ...,   "words" : {     },   "id" : 1   }
]
$ db.bar.update({ id: 1 }, { $inc: { 'words.foo': 1 } });
$ db.bar.find({ id: 1 })
[ 
  {   ...,   "id" : 1,   "words" : {   "foo" : 1   }   }
]
$ db.bar.update({ id: 1 }, { $inc: { 'words.foo': 1 } });
$ db.bar.find({ id: 1 })
[ 
  {   ...,   "id" : 1,   "words" : {   "foo" : 2   }   }
]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. OAuth 2.0 – Кога токенът за достъп трябва да бъде подновен с токен за опресняване?

  2. промяна на ключов документ mongodb агрегат

  3. mongoDB, не можах да прочета от конфигурационен файл -- config в друга папка / Деинсталиране?

  4. Проблеми с настройката на MongoDB SSL реплика - Неподдържан сертификат

  5. Генерираният UID от Mongodb съдържа думата bad