简体   繁体   中英

Mongo - Update nested array of objects by _id

How can I access an array of object with their own _id and update it with Mongo/Mongoose?

Take a look to my update query and check if there's something wrong, because this code doesn't return any error, but it doesn't really update the field

modelUser.findOneAndUpdate(
  { userName: body.author, "portfolio._id": body.id },
  { new: true },
  {
    $set: {  //I thing the problem it's over here
      "portfolio.$.profitLoss": profitLoss,
      "portfolio.$.percentage": percentage
    }
  },
  (err, user) => {
    if (err) {
      console.log(err);
    }
    console.log(`Done`);
  }
);

This is my User Schema:

const userSchema = new Schema({
  ...stuff,
  portfolio: [
    {
      coin: String,
      amount: String,
      price: String,
      bought: Date,
      profitLoss: String,
      percentage: String
    }
  ],
});

Basically i think mongo just don't know which of these sub documents should update, I don't know if there's something like another findOneAndUpdate for sub object/document by id.

只是将findOneAndUpdate更改为updateOne ,一切正常。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM