node.js - 在猫鼬中更新对象的对象
问题描述
我正在使用 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 url,然后设置 amz url。
ProdModel.updateOne({ name: currentName },{ offers: { amz: { url: movies[i].url } } });
但是当我想例如设置 netflix url amz 返回一个空对象:/
解决方案
您可以使用 mongo $set运算符来更新嵌套属性,而无需覆盖父对象中的其他属性。
ProdModel.updateOne({ name: currentName }, { $set: { "offers.netflix.url": movies[i].url } });
推荐阅读
- python - pip install 在 colab 中无法用于 trumania 库
- ruby-on-rails - Rails:基于关联模型属性的 ActiveRecord 查询
- javascript - 反应原生 refreshControl ScrollView 底页 ios
- sql - 是否可以在变量 CLOB 中的执行代码中指定另一个 CLOB (JSON) 中的值
- javascript - 无法在对象上运行函数 - 无法理解原因 - javascript
- ios - firebase 没有在 tableview 中实时填充
- python - 从 anaconda 将 Python 嵌入到 C++ 中,出现错误
- python - django中的对象比较
- javascript - 重置日期输入类型,输入显示在禁用的文本区域上并附加在之后
- flutter - Flutter 图片库保护程序 - 如何访问路径