更新猫鼬对象的对象

时间:2019-11-22 15:25:24

标签: node.js mongodb mongoose

我正在使用node.js和mongoose,遇到问题。
这是我正在使用的模型:

const mongoose = require('mongoose');

const { Schema } = mongoose;

const prodSchema = new Schema({
  name: String,
  rate: String,
  rate_number: String,
  type: String,
  offers: {
    netflix: {
      url: String,
    },
    amz: {
      url: String,
    },
  },
  updated_at: Date,
}, {
  collection: 'prod',
});

const ProdModel = mongoose.model('prod', prodSchema);

module.exports = ProdModel;

例如,我想设置netflix网址,然后设置amz网址。

ProdModel.updateOne({ name: currentName },{ offers: { amz: { url: movies[i].url } } });

但是当我想例如设置netflix url amz时,返回一个空对象:/

1 个答案:

答案 0 :(得分:0)

您可以使用mongo $set运算符更新嵌套属性,而不覆盖父对象中的其他属性。

ProdModel.updateOne({ name: currentName }, { $set: { "offers.netflix.url": movies[i].url } });