mongodb关联查询
Posted 奋小斗Struggle Young
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb关联查询相关的知识,希望对你有一定的参考价值。
GITHUB:https://github.com/peterowang/Springdata-mongo
使用DBRefs
DBRefs中有三个字段 -
$ref
- 此字段指定引用文档的集合$id
- 此字段指定引用文档的_id
字段$db
- 这是一个可选字段,并包含引用文档所在的数据库的名称
假设一个具有DBRef字段address
的示例用户文档,如代码片段所示 -
{ "_id":ObjectId("348362491fjaskdlf2314"), "address": { "$ref": "address_home", "$id": ObjectId("sfaafdf4137832149fssa"), "$db": "yiibai"}, "contact": "13800138000", "dob": "1991-12-12", "name": "Maxsu" }
使用DBef
新建collection role角色表
db.role.insert([{role:"admin"},{role:"root"},{role:"guest"}])
新建用户user表
db.user.insert([
{roleId:[new DBRef(\'role\',ObjectId("59b7910c943eabe738230d34")),new DBRef(\'role\',ObjectId("59b7910c943eabe738230d35"))]},
{roleId:[new DBRef(\'role\',ObjectId("59b7914c943eabe738230d36"))]}
])
\'role\'是刚才创建的role表名,objectId是当前的这条user记录要关联哪些role表中的记录(role中的id)
查询:
查指定id的user记录:
查指定id中的roleId字段中的第1个关联的role信息
查指定id中的roleId字段中的第2个关联的role信息
http://www.yiibai.com/mongodb
https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/
以上是关于mongodb关联查询的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB 中的关联查询MongoDB : aggregate/lookup 对比 Mongoose : ref / populate