mongodb子文档处理--常用的mongoose方法
来源:互联网 发布:php 编译 sass 编辑:程序博客网 时间:2024/06/06 01:45
如同SQL
数据库中2张表有主外关系,Mongoose
将2个Document
的嵌套叫做Sub-Docs
(子文档)
简单的说就是一个Document
嵌套另外一个Document
或者Documents
:
var ChildSchema1 = new Schema({name:String}); var ChildSchema2 = new Schema({name:String}); var ParentSchema = new Schema({ children1:ChildSchema1, //嵌套Document children2:[ChildSchema2] //嵌套Documents });
Sub-Docs
享受和Documents
一样的操作,但是Sub-Docs
的操作都由父类去执行
var ParentModel = db.model('Parent',parentSchema); var parent = new ParentModel({ children2:[{name:'c1'},{name:'c2'}] }); parent.children2[0].name = 'd'; parent.save(callback);
parent
在执行保存时,由于包含children2
,他是一个数据库模型对象,因此会先保存chilren2[0]
和chilren2[1]
。
如果子文档在更新时出现错误,将直接报在父类文档中,可以这样处理:
ChildrenSchema.pre('save',function(next){ if('x' === this.name) return next(new Error('#err:not-x')); next(); }); var parent = new ParentModel({children1:{name:'not-x'}}); parent.save(function(err){ console.log(err.message); //#err:not-x });
####4.1 查询子文档
如果children
是parent
的子文档,可以通过如下方法查询到children
var child = parent.children.id(id);
####4.2 新增、删除、更新
子文档是父文档的一个属性,因此按照属性的操作即可,不同的是在新增父类的时候,子文档是会被先加入进去的。
如果ChildrenSchema
是临时的一个子文档,不作为数据库映射集合,可以这样:
var ParentSchema = new Schema({ children:{ name:String } }); //其实就是匿名混合模式
0 0
- mongodb子文档处理--常用的mongoose方法
- mongodb & mongoose 常用操作
- mongodb: 关于Mongoose的geoNear方法的使用
- mongoose 操作mongodb数据库的
- MongoDB之Mongoose的使用
- MongoDB之Mongoose的使用
- 查询MongoDB子文档的List字段
- Node+Mongoose常用查询中文文档
- Node+Mongoose常用查询中文文档
- mongodb 子文档查询
- mongodb 子文档查询
- 常用的可变字符串处理实例方法 API文档 NSMutableString
- mongoose封装管理mongodb的公共模块
- MongoDB学习笔记之Mongoose的使用
- MongoDB学习笔记之Mongoose的使用
- Node.js的mongodb驱动Mongoose(一)
- Node.js的mongodb驱动Mongoose(二)
- Mongodb 常用的查询方法
- Hive分析窗口函数(一) SUM,AVG,MIN,MAX
- 工业设备IP等级
- dracut using
- pat 1019
- ASP.NET导入Excel到数据库(SQL)
- mongodb子文档处理--常用的mongoose方法
- 远程桌面开启
- Django模型层Meta内部类详解
- Elasticsearch源码分析五--调用Lucene查询接口之模糊查询(Fuzzy)
- Android自定义上下文菜单
- 勿忘初心 不负梦想
- 第八周项目3-指向学生类的指针
- bzoj-2286 消耗战【虚树+倍增lca+单调栈】
- webservice--获取天气信息