sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose upsert opretter ikke standard skemaegenskab

Det, der sker, er, at ingen af ​​Mongooses validerings-, middleware- eller standardværdier bruges, når der kaldes nogen af ​​"update"-familien af ​​metoder, såsom findByIdAndUpdate . De påkaldes kun af opkald til save eller create .

Årsagen til dette er, at "opdaterings"-kaldene reelt er pass-throughs til den oprindelige driver, hvor Mongoose kun leverer typecasting af felterne baseret på skemadefinitionen.

Mongoose 4.0-opdatering

Mongoose understøtter nu indstilling af standarder, når et nyt dokument oprettes under en update , findOneAndUpdate , eller findByIdAndUpdate oprøre. Indstil setDefaultsOnInsert mulighed for at true for at aktivere dette. Dette bruger $setOnInsert operatør for at oprette standardindstillingerne på indsættelse.

var queryOptions = {
    upsert: true,
    setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...


  1. Node.js til MongoDB:find efter dato

  2. Ugenkendt udtryk '$first'

  3. MongoDb aggregeringsforespørgsel med $group og $push ind i underdokument

  4. Reager POST-anmodninger med Express/Node og MongoDB