Mongoose populate方法
最近好忙啊,好久没有来写博客了~
干巴蝶!
还是那句话,写一遍真的比看一遍要好很多!
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' }});
Mongoose populate方法相关推荐
- 使用Mongoose populate实现多表关联存储与查询,内附完整代码
文章目录 使用Mongoose populate实现多表关联与查询 一. 数据模型创建 1. 创建一个PersonSchema 2. 创建一个StorySchema 3. 使用Schema创建对应的m ...
- mongoose populate 填充
学习笔记 内容待商榷 欢迎提出宝贵意见 populate方法提供外键填充的功能 1.创建作者集合 const User = new mongoose.model('User', new mongoos ...
- 案例:演示使用beantuils的setProperty()、getProperty()和populate()方法访问JavaBean的属性
一.添加jar包并发布到类路径 二.创建Person类 public class Person {private String name;private int age;public String g ...
- 对populate()方法的理解
在开发地图的应用中,我们很多时候需要在地图上绘制一些文本,图标信息(比如当前位置的图标,比如某个区域内肯德基店的所有兴趣点) 为了能够在地图上绘制我们需要的信息(比如图片),我们需要知道图层的概念.( ...
- BeanUtils.populate方法使用
BeanUtils.populate方法使用 1.在执行BeanUtils.populate之后,会把map封装成User对象.要注意的是,UserBean类中的字段名必须和html中的name属性值 ...
- BeanUtils的populate方法之日期处理
BeanUtils的populate方法之日期处理 BeanUtils.populate(Obj, Map);可以使map转对象,但是如果是Obj有个日期字段而Map中这个字段为空时候就会报错,无法赋 ...
- populate方法在哪里?
编写代码的时候,populate方法报错,说在BeanUtils中没有此方法,我以为是我下载的版本的问题,就下载了四个不同的版本,后来发现与版本没有关系. 翻开源码发现BeanUtils包下没有pop ...
- [NodeJS] Mongoose Populate 基本使用
转载自 https://blog.csdn.net/elliott_yoho/article/details/53537147 在使用 mongoose 时,想通过一个外键与另一张表建立关联时,不知该 ...
- mongoose populate 返回 指定 字段
1.mongoose中一个数据模型Product(商品)关联另外一个数据模型Brand(品牌)需要使用ref,关联查询使用populate Product模型 new mongoose.Schema( ...
最新文章
- Linux下shel脚本之批量修改文件扩展名
- CTF ---pwndbg 调试常用命令
- 删除我的电脑里面软件快捷方式
- Android 关闭软键盘
- java实现可视化报表_如何在Power BI中记录报表可视化?
- Spring Cloud Zuul支持–配置超时
- 使用IntelliJ书签
- 信息学奥赛一本通(2028:【例4.14】百钱买百鸡)
- 《大型网站技术架构》1.大型网站架构演练
- Code Forces 448C Painting Fence 贪婪的递归
- R载入需要的程辑包:rJava Error
- AD 组策略应用与排错(2排错)
- Hive、Spark优化案例
- 在OBS中解决无法录制chrome的问题
- 华硕服务器主板那个系列好,华硕主板型号性价比排行 华硕主板那个性价最好用...
- 生产计划排程为什么会这么难?
- 盒子模型(标准盒子和怪异盒子)
- MongoDB Ubuntu安装 APP 支付宝微信支付
- 西门子200SMART(七)交叉引用
- 系统时间自动校对 让你准时每一天