Mongo-通过_id更新对象的嵌套数组

时间:2018-09-17 04:36:04

标签: javascript arrays mongodb mongoose nosql

如何使用自己的_id访问对象数组并使用Mongo / Mongoose更新它?

看看我的更新查询,检查是否有问题,因为此代码不会返回任何错误,但它并不会真正更新字段

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`);
  }
);

这是我的用户架构:

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

基本上,我认为mongo只是不知道这些子文档中的哪个应该更新,我不知道子对象/文档是否有另一个findOneAndUpdate的ID。

1 个答案:

答案 0 :(得分:0)

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