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
base de datos
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
-
El objeto subdocumento tiene 2 propiedades, que son ↓
- tipo
- Valor: Esquema
- por defecto
- Valor:
() => ({})
función de flecha
- Valor:
- tipo
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
base de datos