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

Mongoose upsert nevytváří výchozí vlastnost schématu

Jde o to, že žádná z Mongooseových validačních, middlewarových ani výchozích hodnot není použita při volání jakékoli z "aktualizačních" metod, jako je findByIdAndUpdate . Jsou vyvolány pouze voláním save nebo create .

Důvodem je to, že volání "aktualizace" jsou účinně předávána nativnímu ovladači, přičemž Mongoose poskytuje pouze typové přetypování polí na základě definice schématu.

Aktualizace Mongoose 4.0

Mongoose nyní podporuje nastavení výchozích hodnot při vytvoření nového dokumentu během update , findOneAndUpdate nebo findByIdAndUpdate upsert. Nastavte setDefaultsOnInsert možnost true abyste to umožnili. Toto používá $setOnInsert operátor k vytvoření výchozích hodnot pro insert.

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


  1. Mongoose:Přečtěte si o ReplicaSet

  2. WRONGTYPE Operace proti klíči s nesprávným typem hodnoty php

  3. Spring Boot propojuje Mysql a MongoDb

  4. Nelze deserializovat PyMongo ObjectId z JSON