位置: 编程技术 - 正文

Mongodb实现的关联表查询功能【population方法】(mongodb介绍)

编辑:rootadmin

推荐整理分享Mongodb实现的关联表查询功能【population方法】(mongodb介绍),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb的aggregate,mongodb的aggregate,mongodb的基本操作,关于mongodb的全面总结,mongodb的语句,mongodb的aggregate,关于mongodb的全面总结,mongodb用法,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了Mongodb实现的关联表查询功能。分享给大家供大家参考,具体如下:

Population

MongoDB是非关联数据库。但是有时候我们还是想引用其它的文档。这就是population的用武之地。

Population是从其它文档替换文档中的特定路径。我们可以迁移一个单一的文件,多个文件,普通对象,多个普通的对象,或从查询中返回的所有对象

populate 方法

populate 方法可以用在 document 上、 model 上或者是 query 对象上,这意味着你几乎可以在任何地方调用这个方法以填充你的引用字段。

当然,populate 方法在不同对象上参数不大一样,但是都接收一个option的参数,你可以用这些参数指定:

语法:Query.populate(path, [select], [model], [match], [options])

path:以空格分隔的引用字段的名称 String 或 Object类型,String 类型的时, 指定要填充的关联字段,要填充多个关联字段可以以空格分隔。Object 类型的时,就是把 populate 的参数封装到一个对象里。当然也可以是个数组

select: Object 或 String ,可选,指定填充 document 中的哪些字段。Object 类型的时,格式如: {name: 1, _id: 0} ,为 0 表示不填充,为 1 时表示填充。String 类型的时,格式如: "name -_id" ,用空格分隔字段,在字段名前加上 -表示不填充。详细语法介绍 query-select

match: 可选,指定附加的查询条件

Mongodb实现的关联表查询功能【population方法】(mongodb介绍)

model: 可选,指定关联字段的 model,如果没有指定就会使用 Schema的 ref

options: Object 可选,指定附加的其他查询选项,如排序以及条数限制等等

引用字段的类型

目前,Mongoose 只支持以下几种引用字段的类型:

ObjectIdNumberStringBuffer

而且自然而然,引用 document 的主键类型必须和引用字段类型相对应。在生产环境中,推荐主键类型和引用类型都使用 ObjectId ,一是因为 ObjectId 不包含业务含义,二是 ObjectId 不大可能重复,三是因为 Mongoose 默认生成的主键类型就是 ObjectId ,可以减少很多配置的操作。

例子

Scheme先定义好,关联属性

AScheme:

BScheme:

关联查询

更多相关内容还可参考:

解决MongoDB 排序超过内存限制的问题 对集合执行一个大排序操作(如聚合),出现以下错误:(测试版本:MongoDB3.0.6)db.bigdata.aggregate({$group:{_id:"$range",total:{$sum:1}}},{$sort:{total:-1}});#...aggregat

在Linux服务器中配置mongodb环境的步骤 1、到mongodb官网下载一个合适的linux环境安装包如下图,放到本地的某个角落,要记得位置哦~2、然后你需要有一个服务器,并进入sshroot@你的IP//回车输

Windows下MongoDb简单配置教程 如何在Windows下对MongoDb进行简单的配置,本文为大家解答。以管理员的启动cmd进入安装目录下输入:mongod--auth--port--dbpath=库地址--logpath=全地址--install-

标签: mongodb介绍

本文链接地址:https://www.jiuchutong.com/biancheng/312659.html 转载请保留说明!

上一篇:基于MongoDB数据库索引构建情况全面分析(mongodb使用案例)

下一篇:解决MongoDB 排序超过内存限制的问题(mongorepository排序)

  • 非上市公司股权转让涉及哪些税
  • 代扣代缴增值税是什么意思
  • 个人所得税中社保填写在哪昆山
  • 本期盈余转入累计盈余下面什么科目
  • 福利费用属于工资吗
  • 进项抵扣用不完怎么处理
  • 出口退税中哪些是免税的
  • 小规模税收优惠政策1%到什么时候
  • 营改增后工程税收怎么计算
  • 小规模出租不动产免税吗
  • 支付职工医药费计入什么科目
  • 现代服务业营改增前后税率对比表
  • 产权转移数据印花税按次申报?
  • 18年补交17年城建税会计分录
  • 客户要开票资料干嘛
  • 超出经营范围能不能开发票
  • 申报进项税额
  • 关于营改增发票开具的热点问题
  • 坏账准备金最新计算公式
  • 非绑定账户转入啥意思
  • 全年累计应税所得额
  • linux查看系统信息工具
  • 合同印花税的5个税目
  • php 替换
  • 关闭windows defender实时防护
  • 固定资产计提折旧的原则
  • 委托加工的加工费是含税的吗
  • 建筑企业跨区域还需预缴增值税吗
  • aes-ecb和aes-gcm
  • 小规模纳税人免税会计分录
  • 税款差0.05是怎么处理
  • 俄勒冈zip
  • promise thenable
  • pytorch多块gpu
  • laravel 实例
  • 固定资产多少金额才算
  • 金蝶软件凭证修改怎么做
  • 如何去掉或修改文件夹
  • windows安装mq
  • 定期定额自行申报表应税项填多少
  • 红字发票是可以抵扣吗
  • 如果删除申报记录会怎么样
  • 开红字发票时,数量与金额必须是负数?
  • 哪些免征土地使用税
  • 开诊所会计应如何做账
  • 开出银行承兑汇票一张用于支付材料采购款
  • 离线开票时间超限怎么办 发票都已经报送
  • 免费样品的好处
  • 销售返利怎么做税务处理
  • 分期付款购买商品如何定价
  • 印花税是本月交上个月的吗
  • 管理费用具体例子
  • 建账的基本要求
  • mysql理论知识
  • Win10预览版拆弹
  • windows使用痕迹在哪里
  • ubuntu20.04
  • unetbootin教程
  • 根据自己的需求配置一台电脑
  • vm虚拟机怎么使用
  • unity输入中文
  • unity协程yield
  • shell中遍历数组
  • python怎么样学
  • javascript中new Array()和var arr=[]用法区别
  • java怎样学
  • js字符串转为json
  • jquery的实现原理
  • android的消息机制
  • jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
  • js校验密码复杂度
  • jquery的gt
  • 获取手机信息的渠道
  • js中构造函数怎么写
  • 商铺土地增值税预缴税率是多少
  • 收到补税点的分录
  • 抚州到崇仁火车时刻表
  • 地税局有实权吗
  • 党风监督员监督和反应情况怎么写
  • 税务申报如何网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设