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

Jak zkontrolovat, zda byl dokument vložen nebo aktualizován při použití findOneAndUpdate?

Od 8. srpna 2019 (Mongoose verze 5.6.9) je nastavena vlastnost „rawResult“, nikoli „passRawResult“:

M.findOneAndUpdate({}, obj, {new: true, upsert: true, rawResult:true}, function(err, d) {
    if(err) console.log(err);
    console.log(d);
});

Výstup:

{ lastErrorObject:
   { n: 1,
     updatedExisting: false,
     upserted: 5d4befa6b44b48c3f2d21c75 },
  value: { _id: 5d4befa6b44b48c3f2d21c75, rating: 4, review: 'QQQ' },
  ok: 1 }

Všimněte si také, že výsledek je vrácen jako druhý parametr a nikoli jako třetí parametr zpětného volání. Dokument lze získat pomocí d.value.



  1. Flask - Bad Request Prohlížeč (nebo proxy) odeslal požadavek, kterému tento server nerozuměl

  2. MongoDB a složené primární klíče

  3. Každé druhé spuštění vyvolá:MongoError:Topologie byla zničena

  4. Nahrajte a načtěte soubory pomocí MongoDB a Spring Boot