【问题标题】:Nested JSON object not saving to database MongoDB嵌套的 JSON 对象未保存到数据库 MongoDB
【发布时间】:2020-12-18 09:55:09
【问题描述】:

我有三个 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,
});

数据库中保存的内容:

contactDetials 具有默认值的嵌套 JSON 对象在哪里,我不应该在第一次保存用户时提供任何数据,因为它应该只使用具有默认值的数据模型?

【问题讨论】:

    标签: javascript node.js json mongodb mongoose


    【解决方案1】:

    你应该试试这个: contactDetails: contact 代替: contactDetails: {type: contact} 联系人也一样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2017-06-26
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2016-12-11
      • 2018-03-24
      相关资源
      最近更新 更多