【Mongoose】mongoose子文档创建注意事项 | 子文档创建无效

版本号

mongoose是最新版↓

"mongoose": "^7.1.0",

问题描述

  • mongoose创建文档时,子文档有默认值,创建后子文档无效,如下↓
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(创建父级文档);

运行结果
在这里插入图片描述

数据库
在这里插入图片描述

上图所示,子文档没有被创建

解决子文档未创建

  • 官网介绍 - https://mongoosejs.com/docs/subdocs.html

  • 在这里插入图片描述

  • 子文档对象有2属性,分别为↓

    1. type
      • 值:Schema
    2. default
      • 值:() => ({})箭头函数

码↓

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(创建父级文档);

解决结果

运行结果
在这里插入图片描述

数据库
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mongoose是一个在Node.js中操作MongoDB数据库的对象模型工具。它提供了一种简单而优雅的方式来定义和操作MongoDB中的文档Mongoose官方文档提供了详细的指南和API参考,帮助开发者了解和使用Mongoose。以下是Mongoose官方文档的主要内容: 1. 安装和配置:介绍了如何安装Mongoose以及配置连接MongoDB数据库的方法。 2. 模型定义:讲解了如何使用Mongoose定义模型,包括定义模式(Schema)和模型(Model)。 3. CRUD操作:介绍了如何使用Mongoose进行增删改查操作,包括创建文档、查询文档、更新文档和删除文档。 4. 查询和过滤:详细介绍了Mongoose中的查询方法和过滤器,包括条件查询、排序、分页等。 5. 中间件:讲解了Mongoose中的中间件概念和使用方法,包括前置中间件、后置中间件和错误处理中间件。 6. 钩函数:介绍了Mongoose中的钩函数,可以在保存、更新等操作前后执行一些逻辑。 7. 数据验证:讲解了如何使用Mongoose进行数据验证,包括内置验证器和自定义验证器。 8. 引用和关联:详细介绍了Mongoose中的引用和关联概念,可以在不同集合之间建立关系。 9. 聚合查询:介绍了Mongoose中的聚合查询功能,可以进行复杂的数据聚合操作。 10. 插件:讲解了如何使用Mongoose插件扩展功能,以及一些常用的插件示例。 以上是Mongoose官方文档的主要内容,你可以通过访问Mongoose官方网站来获取更详细的信息和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值