javascript - 如何将带有 SchemaType 选项的嵌套对象推送到猫鼬模型?
问题描述
我的猫鼬模型:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const VacancySchema = new Schema(
{
parameters: []
},
{ timestamps: true },
{ strict: false }
);
module.exports = mongoose.model('Vacancy', VacancySchema);
我正在尝试使用 mongoose 在 node.js 中创建一个动态模型。该parameters
字段接受对象列表。这些对象是嵌套的 javascript 对象,其中包含一些数据和 SchemaType 选项type, trim, required, etc.
,例如修改数据内容。我想将这些和类似的字段插入到parameters
mongoose 中的数组中。
正如您可能已经猜到的那样,这些字段是动态的,我最初无法将它们保存在模型中。现在我面临的问题是,当我将这些对象存储到模型时,这些选项trim
会失去它们的功能,即它们不起作用。如果我先插入这些选项,然后推送数据,这些字段就会被覆盖。解决这种情况的最佳方法是什么?
编辑:
要插入数据:
await Vacancy.create({
parameters: paramArray,
template: "some id",
status: 0
});
用户输入:
{
client: " ABC ",
name: " XYZ ",
}
我存储为 json 的对象:
paramArray: [
client: {
type: String,
trim: true,
required: true,
section: 0
},
name: {
type: String,
trim: true,
section: 0
}
]
预期结果:
数据库中的输出:(用户数据存储在数据库中,修剪操作应用于数据)
parameters: [{
client: "ABC"
},
{
name: "XYZ"
}
]
解决方案
您的 Mongoose 架构语法错误。我更正为;
const { Schema, model } = require('mongoose');
const VacancySchema = new Schema({
parameters: [],
timestamps: true,
strict: false
});
const Vacancy = model('Vacancy', VacancySchema);
module.exports = Vacancy;
推荐阅读
- typo3 - TYPO3 掩码要求 EXT:example_extension
- python - 关于值为真,然后变为假的问题
- sql-server - 无法使用 SQL Analysis Services 连接到“localhost”
- java - 如何根据关键字段之一在 Java 中合并地图?
- python - Visual Studio 代码:设置容器时出错
- python - 是否有可能用 Python 修复 CSV 逗号问题?
- drake - 如何搜索指南针步态限制周期?
- c# - 分割矩形进行二进制空间分区,不知道如何定位它们
- user-interface - 在 Flutter 上使用 ChangeNotifierProvider 选择另一个选项卡时如何更改 AppBar 颜色?
- python - mysql - django - android的最佳模型是什么?