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

Push položky do mongo pole přes mongoose

Za předpokladu, var friend = { firstName: 'Harry', lastName: 'Potter' };

Máte dvě možnosti:

Aktualizujte model v paměti a uložte (prostý javascript array.push):

person.friends.push(friend);
person.save(done);

nebo

PersonModel.update(
    { _id: person._id }, 
    { $push: { friends: friend } },
    done
);

Vždy se snažím, když je to možné, volím první možnost, protože bude respektovat více výhod, které vám mongoose poskytuje (háky, validace atd.).

Pokud však provádíte mnoho souběžných zápisů, narazíte na závodní podmínky, kde skončíte s ošklivými chybami verzí, které vám zabrání pokaždé vyměnit celý model a ztratit předchozího přítele, kterého jste přidali. Takže k prvnímu choďte pouze tehdy, když je to nezbytně nutné.



  1. Ladění Java Garbage Collection pro HBase

  2. Existuje nějaký klient Redis (preferovaná Java), který podporuje transakce na clusteru Redis?

  3. Práce s vnořenými objekty v Redis?

  4. 'process.nextTick(function() { throw err; })' - Nedefinováno není funkce (mongodb/mongoose)