【Mangoose】Precauciones para la creación de subdocumentos de Mongoose | La creación de subdocumentos no es válida

número de versión

mangosta es la última versión↓

"mongoose": "^7.1.0",

Descripción del problema

  • Cuando mongoose crea un documento, el subdocumento tiene un valor predeterminado y el subdocumento no es válido después de la creación, de la siguiente manera↓
import mongoose from "mongoose"   

const readWriteUrl = 'mongodb://127.0.0.1:27017/jxz' 
const db = mongoose.connect(readWriteUrl)

const mg = await db
const {
    
     Schema } = mg

const 父级 = mg.model('users', new Schema({
    
     // 父文档
    age: {
    
    
        type: Number,
        default: 0,
    },

    // 子文档
    info: new Schema({
    
    
        name: {
    
    
            type: String,
            default: '默认昵称'
        },
        sex: {
    
    
            type: Number,
            default: 0,
        }
    })
}))

const 创建父级文档 = await new 父级().save()
console.log(创建父级文档);

resultado de la operación
inserte la descripción de la imagen aquí

base de datos
inserte la descripción de la imagen aquí

Como se muestra en la figura anterior, el subdocumento no se ha creado

Resolver subdocumento no creado

  • Introducción al sitio web oficial: https://mongoosejs.com/docs/subdocs.html

  • inserte la descripción de la imagen aquí

  • El objeto subdocumento tiene 2 propiedades, que son ↓

    1. tipo
      • Valor: Esquema
    2. por defecto
      • Valor: () => ({})función de flecha

Código ↓

import mongoose from "mongoose"   

const readWriteUrl = 'mongodb://127.0.0.1:27017/jxz' 
const db = mongoose.connect(readWriteUrl)

const mg = await db
const {
    
     Schema } = mg


const 父级 = mg.model('test', new Schema({
    
     // 父文档
    age: {
    
    
        type: Number,
        default: 0,
    },

    // 子文档
    info: {
    
    
        // 重点1 ,子文档的type是Schema
        type: new Schema({
    
    
            name: {
    
    
                type: String,
                default: '默认昵称'
            },
            sex: {
    
    
                type: Number,
                default: 0,
            }
        }),

        // 重点2,默认值为箭头函数
        default: () => ({
    
    })
    }
}))

const 创建父级文档 = await new 父级().save()
console.log(创建父级文档);

resolver el resultado

resultado de la operación
inserte la descripción de la imagen aquí

base de datos
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43614372/article/details/131195190
Recomendado
Clasificación