Mongodb多表查询

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: Mongodb多表查询 var a={value:"1"}    var b={value:"2"}    var c={value:"9"}    var d={value:"10"}    db.A.save(a)    db.A.save(b)          db.A.save(c)     db.A.save(d)    db.A.find()       
Mongodb多表查询

var a={value:"1"}  
 var b={value:"2"}  
 var c={value:"9"}  
 var d={value:"10"}  
 db.A.save(a)  
 db.A.save(b)        
 db.A.save(c)   
 db.A.save(d)  
 db.A.find()       
{ "_id" : ObjectId("53ab8b45a0f7f5ae1a2ed651"), "value" : "1" }
{ "_id" : ObjectId("53ab8b45a0f7f5ae1a2ed652"), "value" : "2" }
{ "_id" : ObjectId("53ab8b45a0f7f5ae1a2ed653"), "value" : "9" }
{ "_id" : ObjectId("53ab8b45a0f7f5ae1a2ed654"), "value" : "10" }

var Ba={Apid:[new DBRef('A',ObjectId("53ab8b45a0f7f5ae1a2ed652"))],value:3}                        
 db.B.save(Ba)  
 var Ba={Apid:[new DBRef('A',ObjectId("53ab8b45a0f7f5ae1a2ed652"))],value:4}  
 db.B.insert(Ba)                                                              
 var Ba={Apid:[new DBRef('A',ObjectId("53ab8b45a0f7f5ae1a2ed652"))],value:7}  
 db.B.insert(Ba)                                                              
 var Ba={Apid:[new DBRef('A',ObjectId("53ab8b45a0f7f5ae1a2ed652"))],value:8}  
 db.B.insert(Ba)                                                              
 db.B.find()  
{ "_id" : ObjectId("53ab8c57a0f7f5ae1a2ed655"), "Apid" : [ DBRef("A", ObjectId("
53ab8b45a0f7f5ae1a2ed652")) ], "value" : 3 }
{ "_id" : ObjectId("53ab8c57a0f7f5ae1a2ed656"), "Apid" : [ DBRef("A", ObjectId("
53ab8b45a0f7f5ae1a2ed652")) ], "value" : 4 }
{ "_id" : ObjectId("53ab8c57a0f7f5ae1a2ed657"), "Apid" : [ DBRef("A", ObjectId("
53ab8b45a0f7f5ae1a2ed652")) ], "value" : 7 }
{ "_id" : ObjectId("53ab8c57a0f7f5ae1a2ed658"), "Apid" : [ DBRef("A", ObjectId("
53ab8b45a0f7f5ae1a2ed652")) ], "value" : 8 }

var Ca={Bpid:[new DBRef('B',ObjectId("53ab8c57a0f7f5ae1a2ed656"))],value:5}                        
 db.C.save(Ca)                                                                
 var Ca={Bpid:[new DBRef('B',ObjectId("53ab8c57a0f7f5ae1a2ed656"))],value:6}  
 db.C.save(Ca)                                                                
 db.C.find()  

{ "_id" : ObjectId("53ab8cb1a0f7f5ae1a2ed659"), "Bpid" : [ DBRef("B", ObjectId("
53ab8c57a0f7f5ae1a2ed656")) ], "value" : 5 }
{ "_id" : ObjectId("53ab8cb1a0f7f5ae1a2ed65a"), "Bpid" : [ DBRef("B", ObjectId("
53ab8c57a0f7f5ae1a2ed656")) ], "value" : 6 }

目前为止3个collection 的关系已经建成。

查询:

> var a = db.B.findOne({"value":4})
> a.Apid.forEach(function(ref){printjson(db[ref.$ref].findOne({"_id":ref.$id}));
})
{ "_id" : ObjectId("53ab8b45a0f7f5ae1a2ed652"), "value" : "2" }
>

> db.B.findOne().Apid[0].$id
ObjectId("53ab8b45a0f7f5ae1a2ed652")
> db.A.findOne({"_id":db.B.findOne().Apid[0].$id})
{ "_id" : ObjectId("53ab8b45a0f7f5ae1a2ed652"), "value" : "2" }
>

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL MongoDB Python
mongodb使用like模糊查询
mongodb使用like模糊查询
1209 0
|
SQL 存储 分布式计算
【收藏】MongoDB 常用查询语句汇总
【收藏】MongoDB 常用查询语句汇总
1288 0
|
1月前
|
NoSQL MongoDB
mongodb分组查询
mongodb分组查询
|
NoSQL C# 数据库
使用c#对MongoDB进行查询(1)
1.BsonDocument对象     在MongoDB.Bson命名空间下存在一个BsonDocument类,它是MongoDB的文档对象,代表着MongoDB中不规则数据一条条实体模型。可以使用BsonDocument对不规则数据进行操作,这个类型继承了IEnumberable类,也就是说又将...
2340 0
|
SQL NoSQL JavaScript
Mongodb 的多表查询讲解|学习笔记
快速学习 Mongodb 的多表查询讲解
1320 0
|
存储 NoSQL MongoDB
MongoDB:4-MongoDB的索引和查询分析(explain)
MongoDB:4-MongoDB的索引和查询分析(explain)
565 0
|
缓存 NoSQL MongoDB
NoSQLBooster for MongoDB 中跨库关联查询
使用 MongoDB 是我们常常会遇到一些特殊的需求需要跨库关联查询,比如订单明细缺商品重量需要补商品重量,而商品重量数据又在商品库中,这事就需要跨库关联操作,示例代码如下: // 使用 order 库,注意语句后面不要加分号 use order var count = ; db.order_detail.find({"store_code":"110"}).forEach(function(_order){ var item = db.getSiblingDB("goods").item.findOne({"barcode":_order.barcode}); if(it
733 0
|
SQL 缓存 NoSQL
MongoDB-SQL优化
本文主要讲述了MongoDB的SQL优化相关的几个知识点:1)查询优化器原理;2)执行计划解析;3)性能排查手段;4)读写优化
4299 0
|
NoSQL MongoDB
MongoDB查询的详细介绍
MongoDB查询的详细介绍 一.数据的基本查询:         1.基本查询{              1.查询所有的数据                 db.xx.find()              2.
1229 0