名义解释
- 特点:MongoDB是以空间换取时间和效率,本身不提供关系数据库中常见的主键生成策略、事务。
- Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
- Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对(管理数据库属性、行为的类)
- Entity : 由Model创建的实体,他的操作也会影响数据库
Schema属性关键字
- default 设置默认值
- get 调用处理方法,比如格式化字符串(处理方法)
- index 设置索引规则
- required 设置验证规则,正则表达式等
- select 设置属性是否总是在查询结果中出现bool
- set 可以修改传来的属性值,和get类似
- sparse 稀疏索引bool,与索引搭配使用
- unique 设置这个属性的值只出现一次,一般对索引设置
- validate 自定义验证规则(函数),用于对属性的值进行验证,false失败,true通过验证
- required 非空验证
- min/max 范围验证(边值验证)
- enum/match 枚举验证/匹配验证
属性
- safe——安全属性
new Schema({...},{safe:{j:1,w:2,wtimeout:10000}}); j表示做1份日志,w表示做2个副本(尚不明确),超时时间10秒
- capped——上限设置
new Schema({...},{capped:1024}); //一次操作上线1024条数据 new Schema({...},{capped:{size:1024,max:100,autoIndexId:true}});
- versionKey——版本锁
new Schema({...},{versionKey:false});
- autoIndex——自动索引
- shardKey——分布式
常用SQL语句
- 新增(如果是Entity,使用save方法,如果是Model,使用create方法)
- 使用Entity来增加一条数据
var krouky = new PersonModel({name:'krouky'}); krouky.save(callback);
- 使用Model来增加一条数据
var MDragon = {name:'MDragon'}; PersonModel.create(MDragon,callback);
- 删除(Entity和Model都使用remove方法)
网友评论