打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MongoDB 字段验证
userphoto

2023.11.04 福建

关注
表白:黑白圣堂血天使,天剑鬼刀阿修罗。 
讲解对象:
/MongoDB 字段验证
作者:融水公子 rsgz
===

需求:想将某个字段设置为必须字段 必须填写
只需要转变成对象的形式就行了 添加require布尔属性
    let BookSchema = new mongoose.Schema({
        title: {
            type:String,
            require:true
        }
        author: String,
        price: Number,
        is_hot: Boolean,
        tags: Array,
        pub_time: Date,
        test:mongoose.Schema.Types.Mixed  // 任意类型
        // docid:mongoose.Schema.Types.ObjectId  // 必须是文档id  一般这个作为外键
        // num_float:mongoose.Schema.Types.Decimal128  // 指定高精度的数字类型
    });

还有其他的字段验证
const mongoose = require('mongoose');  // 执行之前需要打开服务端 mongod.exe

// 避开提醒
mongoose.set('strictQuery', true);
// 连接数据库  没有就创建
mongoose.connect('mongodb://127.0.0.1:27017/bili');

// 4. 设置连接成功回调 
mongoose.connection.once('open', () => {
    console.log('连接成功');
});


async function createDocument(){
    // 5. 创建文档结构对象+ 属性值
    let BookSchema = new mongoose.Schema({
        title: {
            type:String,
            require:true  // 必填项
        },
        author: {
            type:String,
            default:'匿名'  // 默认值
        },
        gender:{
            type:String,
            enum:['男','女']  // 枚举值 设置的值必须是数组中
        },
        username:{
            type:String,
            require:true,
            unique:true  // 设置唯一值  unique 需要重建集合 才能有效果
        },
        price: Number,
        is_hot: Boolean,
        tags: Array,
        pub_time: Date,
        test:mongoose.Schema.Types.Mixed  // 任意类型
        // docid:mongoose.Schema.Types.ObjectId  // 必须是文档id  一般这个作为外键
        // num_float:mongoose.Schema.Types.Decimal128  // 指定高精度的数字类型
    });

    // 6. 创建文档模型对象
    let BookModel = mongoose.model('book', BookSchema);

    const ObjectId = mongoose.Schema.Types.ObjectId
    // 7. 插入文档
    let res = await BookModel.create({
        title: '西游记',
        // author: '吴承恩',
        gender:'男',
        username:'荒天帝',
        price: 19.9,
        is_hot:true,
        tags:['感人事迹','日记','回忆照片','思考人生'],
        pub_time:new Date(),
        test:'这里随便数据类型都可以!!!'
        // docid:ObjectId
        // num_float:1546.15648654
    })
    if(res){
        console.log(res);
    }
}

createDocument();

mongoose.connection.once('err', () => {
    console.log('连接失败');
});

mongoose.connection.once('close', () => {
    console.log('连接关闭');
});
// 8. 断开连接
setTimeout(() => {mongoose.disconnect();}, timeout=10000);


=== 
公众号:不浪仙人
谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢。建议大家360doc[www.360doc.com]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
';
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
mongoose 实现DBRef查找所有子类信息
13.Mongoose简介
MongoDB(二)mongoose
Node.js 蚕食计划(七)—— Koa + GraphQL + MongoDB + Vue 初体验
2 教你如何用js去操作数据库 mongoDB-Moogoose
用户画像4:标签数据开发
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服