MongoDB 文档间的关系
-
一对多
在MongoDB可以通过内嵌文档的形式来体现出一对一的关系。
db.wifeAndHusband.insert([ { name:"huangrong", husband:{ name:"guojing" } }, { name:"panjinlian", husband:{ name:"wudalang" } } ]);
-
一对多
例如 用户和订单的关系
用户集合:
db.users.insert([ { username:"swk" },{ username:"zbj" } ]);
订单集合:
db.order.insert({ list:["pingguo","xiangjiao","dayali"] });
现在是一个用户怎样对应多个订单:
db.order.insert({ list:["pingguo","xiangjiao","dayali"], user_id:ObjectId("6013ac7450f3d18a1b865b2a")//用户swk的id });
查询 swk 的订单
var user_id = db.users.findOne({username:"swk"})._id; db.order.find({user_id:user_id});
-
多对多
老师和学生的关系
建立老师集合:
db.teachers.insert([ {name:"hongqigong"}, {name:"huangyaoshi"}, {name:"guixianren"} ]);
建立学生集合,通过所属老师的集合变成 多对多。
db.stus.insert([ { name:"guojing", tech_ids:[ ObjectId("6013f17850f3d18a1b865b34"), ObjectId("6013f17850f3d18a1b865b35") ] }, { name:"sunwukong", tech_ids:[ ObjectId("6013f17850f3d18a1b865b34"), ObjectId("6013f17850f3d18a1b865b35"), ObjectId("6013f17850f3d18a1b865b36") ] } ]);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!