sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kontrollerar man om ett dokument har infogats eller uppdaterats när man använder findOneAndUpdate?

Från och med den 8 augusti 2019 (Mongoose version 5.6.9) är egenskapen som ska ställas in "rawResult" och inte "passRawResult":

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

Utdata:

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

Observera också att resultatet returneras som den andra parametern och inte den tredje parametern för återuppringningen. Dokumentet kan hämtas med d.value.



  1. MongoDB och C# Find()

  2. Det gick inte att hitta datakällan:com.mongodb.spark.sql.DefaultSource

  3. Dokumentfältnamn kan inte börja med '$' (dålig nyckel:'$set')

  4. Node.js + Mongoose.js Hur får man summan av beställningar som görs inom en månad eller vecka?