javascript - 嵌套的 JSON 对象未保存到数据库 MongoDB
问题描述
我有三个 mongo 模式,每个模式都相互嵌套。主要的有一个嵌套的 JSON,其中也有一个嵌套的 JSON。但是,当使用主模式保存用户时,其他两个嵌套模式没有使用它们的默认值保存,为什么?这是我的三个模式的示例(只是示例数据结构):
const userContacts = new mongoose.Schema({
user1PhoneNumber: {
type: Number,
default: 0
},
user2PhoneNumber: {
type: Number,
default: 0
}
})
const contact = new mongoose.Schema({
phoneNumber: {
type: Number,
default: 0
},
contacts: {
type: userContacts
}
})
const finalUserSchema = new mongoose.Schema({
username: {
type: String,
required: true,
max: 255
},
email: {
type: String,
required: true,
max: 255,
},
password: {
type: String,
required: true,
min: 10,
max: 1024,
},
contactDetails: {
type: contact
}
})
module.exports = mongoose.model('User', finalUserSchema);
首次使用 mongoose 模型创建用户时,未设置这些值,因为稍后将使用它们……但它们仍应以其默认值出现在数据库中:
const user = new User({
username: req.body.username,
email: req.body.email,
password: hashedPassword,
});
保存在数据库中的内容:
具有默认值的嵌套 JSON 对象在哪里contactDetials
,当我第一次保存用户时,我不应该提供任何数据,因为它应该只使用具有默认值的数据模型?
解决方案
你可以试试这个:
contactDetails: contact
而不是:
contactDetails: {type: contact}
联系人相同
推荐阅读
- android - 将圆圈放在图标后面并选择颜色
- c++ - FIFO 块程序,直到其他进程读取
- gtk - 处理“将孩子添加到 Gtk.Box”事件
- python - 无法通过 PIP 安装任何新软件包 | 蟒蛇
- java - JSTL fn:subStringBetween?
- java - 为什么我的 Spring Boot 错误控制器不起作用?
- vue.js - 使用 vue-cli3 删除插件
- java - 当服务器响应需要很长时间时如何使客户端不断开连接
- python - 如何将通过输入命令输入的值存储在列表中
- java - Robot.getPixelColor 与 BufferedImage.getRGB