Mongodb 编辑数组中的文档(如果存在),否则推送到数组

Mongodb 编辑数组中的文档(如果存在),否则推送到数组,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,我有以下型号: var asdSchema = new Schema({ ratings: [{ item: { type: Schema.Types.ObjectId, ref: 'Items' }, rating: Number, date: { type: Date, default: Date.now } }] }); 我有一个findbyiandupdate推送到一个数组,但是,如果一个项目ID已经存在,那么更新评级的好方法是什么 { $push

我有以下型号:

var asdSchema = new Schema({
  ratings: [{
     item: { type: Schema.Types.ObjectId, ref: 'Items' },
     rating: Number,
     date: { type: Date, default: Date.now }
  }]
});
我有一个
findbyiandupdate
推送到一个数组,但是,如果一个项目ID已经存在,那么更新评级的好方法是什么

{ $push: { ratings: { item: item, rating: rating }} }
基本上只需要向上插入
字段

编辑:当前设置检查评级是否存在,如果存在,则执行以下操作:

User.findOneAndUpdate(
    { _id: userId, 'ratings.item': item },
    { '$set': { 'ratings.$.rating': rating } },
    ...
否则,将新评级推送到评级数组。我想可以快一点