sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur projicerar man uppdaterade värden endast med findOneAndUpdate i inbäddad array Mongoose?

du kan använda array.find() så här:

const updatebookSource = (sourceId, userId, bookId) => {
  User.findOneAndUpdate({ _id: userId, "books._id": bookId }, up, filter).exec(
    (err, doc) => {
      if (err) throw err;
      let res = doc.books[0].ratings.find(rating => {
        return rating.source === sourceId;
      });

      console.log(JSON.stringify(res, null, 1));
    }
  );
};

Detta returnerar det uppdaterade objektet. Låt mig veta om det fungerar.




  1. Mongoose kastar felet "Fältet är inte i schemat" när ett fält definieras två gånger

  2. Det gick inte att starta redis.service:Enheten redis-server.service är maskerad

  3. Mongo Distinkt Aggegation

  4. Villkorligt utvärdera ett arrayelement för att returnera