Mongodb多表查询

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 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" }
>

目录
相关文章
Xcode12在storyboard添加组件和事件,添加新页面及跳转
Xcode12界面有所改变,导致一些按钮位置变动。比如为storyboard添加组件的按钮移至如下位置:
2324 0
|
机器学习/深度学习 算法 TensorFlow
【Python深度学习】Tensorflow对半环形数据分类、手写数字识别、猫狗识别实战(附源码)
【Python深度学习】Tensorflow对半环形数据分类、手写数字识别、猫狗识别实战(附源码)
300 0
|
JavaScript 定位技术
VUE之高德地图轨迹绘制与轨迹回放
VUE之高德地图轨迹绘制与轨迹回放
1230 0
VUE之高德地图轨迹绘制与轨迹回放
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
613 214
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
852 61