表白:黑白圣堂血天使,天剑鬼刀阿修罗。';
讲解对象:/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]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
联系客服