【发布时间】:2019-11-15 14:02:21
【问题描述】:
我正在尝试使用 express 更新猫鼬模式中嵌套数组中的值。我有所需的代码,我认为我需要更新它,但数组没有得到更新。
所以我们的想法是能够拥有一个数据库模式数组 对象,其中包含两个字段,schemaName 和 schemaFields。我希望能够根据需要更新(添加/删除)特定 schema 对象 的 schemaFields 字段中的值。
我已经在这里和互联网上的其他地方尝试了很多东西,但似乎没有任何效果。我尝试使用 findOneAndUpdate、findByIdAndUpdate 等。
我的猫鼬架构如下,
let databaseSchema = new Schema({
schemaName: { type: String },
schemaFields: [String]
});
let databaseSchemas = new Schema(
{
dbSchemas: [databaseSchema]
},
{
collection: 'databaseSchemas'
}
);
我的更新函数如下,
schemasModel.mongo
.update(
{
_id: req.body.documentId,
'dbSchemas._id': req.body.schemaId
},
console.log('preparin to push the field \n'),
{
$push: {
'dbSchemas.$.schemaFields': req.body.newField
}
}
)
.then(() => {
res.send('new field added successfully');
});
【问题讨论】: