Mongoose populate方法
来源:互联网 发布:ubuntu卸载不了软件 编辑:程序博客网 时间:2024/05/22 05:10
最近好忙啊,好久没有来写博客了~
干巴蝶!
还是那句话,写一遍真的比看一遍要好很多!
populate方法提供外键填充的功能。由于Mongoose是极具JavaScript特点的程序库,提供了极其简单和强大的填充功能,因此,populate不止可以填充单个文档,也支持多文档,甚至直接填充对象!
外键引用
在定义Schema字段时,可以添加ref属性来指向另一个Schema。 该ref属性在此后被填充(populate)时将被mongoose读取。
例子:
const DetailSchema = new Schema({ userId: { type: ObjectId, required: true, ref: 'user' // 关联 }})
填充外键
Detail.findOne({title: 'yy'}) .populate('user') .exec(function(err, detail){ if(err) throw err; console.log(detail.user.name); });
只填充指定字段
Story.findOne({title: 'xx'}) .populate('creator', 'name') // 只返回Person的name字段 .exec(function(err, story){ if(err) throw err; console.log(story.creator.name); });
填充多个属性
链式调用即可
Story.find(...) .populate('creator fans') .exec();Story.find(...) .populate('creator') .populate('fans') .exec();
填充限制
在执行填充命令的同时,还可以指定过滤器以及限制大小,方法就是将方法的参数换成一个对象:
Story.find(...) .populate({ path: 'fans', match: { age: { $gte: 21 }}, select: 'name', options: { limit: 5 } }); .exec();
这段代码的结果只会得到:年龄大于21的对象,并且只返回name字段,最多返回5个。
多级关联填充
填充引用的引用。
var userSchema = new Schema({ name: String, friends: [{ type: ObjectId, ref: 'User' }]});User. findOne({ name: 'Val' }). populate({ path: 'friends', populate: { path: 'friends' } });
阅读全文
0 0
- Mongoose populate方法
- 【Mongoose】populate基本使用
- [NodeJS] Mongoose Populate 基本使用
- mongodb中的populate方法
- mongodb中的populate方法
- 对populate()方法的理解
- Mongoose 一些查询方法
- Mongoose 一些查询方法
- mongoose删除集合方法
- SybaseASE不支持CachedRowSet中的populate方法
- BeanUtils的populate方法之日期处理
- mongoose find方法报错
- mongoose
- mongoose
- Mongoose
- Mongoose
- mongoose
- mongoose
- 预处理和结构体的问题
- 图片上传两次,ajax上传2次解决方案
- mac os快速切换多个php版本
- 使用gradle指令运行测试脚本
- CSS3中text-overflow支持以...代替超出文本
- Mongoose populate方法
- 使用sklearn进行集成学习——理论
- c primer plus 第十章编程题
- java基础复习一:int与Integer
- spring boot下非web应用,mysql数据源报错问题
- Gson
- JavaScript专题系列20篇正式完结!
- Java高级开发工程师考纲
- win7安装adb