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

MongoDB - Přidání do sady a zvýšení

Pokud jste ochotni přejít ze seznamu na hash (objekt), můžete to udělat atomicky.

Z dokumentů :"$inc." ... zvýší pole o číselnou hodnotu, pokud je pole v objektu přítomno, jinak nastaví pole na číselnou hodnotu."

{ $inc : { field : value } }

Pokud byste tedy mohli refaktorovat svůj kontejner a objekt:

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

komu:

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

můžete použít operaci update s:

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

což by vytvořilo { 'foo': 1 } pokud 'foo' neexistuje, jinak inkrementujte foo.

Např.:

$ 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. Nejlepší knihovna Redis pro Javu

  2. výpočet průměru v Mongoose

  3. Volání uložené funkce v mongodb

  4. Laravel 5.2 Mongo MonogDB Nepodařilo se analyzovat URI MongoDB