Mongoose如何只返回对象数组中的修改对象?

时间:2017-03-23 19:05:31

标签: mongodb mongoose

这是我的架构:

const userSchema = new Schema({
   local: {
      email: {type: String, unique: true, lowercase: true, trim: true, required: true},
      password: {type: String, required: true},
   },
   items: [{
     siteName: {type: String, trim: true},
     link: {type: String, trim: true},
     color: {type: String, trim: true},
     createdAt: {type: Date, default: Date.now, select: false}
   }]
});

我有下面的查询,它根据URL中提供的ID更新项目,然后我设置new:true,它返回整个items对象数组,但我需要它只返回我在这个数组中更新的单个对象。

User.findOneAndUpdate({"_id": req.user.id, "items._id": req.params.id}, {$set: {
    'items.$.siteName': req.body.siteName,
    'items.$.link': req.body.link,
    'items.$.color': req.body.color
  }}, {new: true}, (err, user) => { ... }

所以我的问题是如何仅在items数组中接收更新的对象而不是其所有内容?

0 个答案:

没有答案