文档之间的关系
一对一(one to one)
- 在 MongoDB , 可以通过内嵌文档形式体现出一对一的关系。(相对较少)
- 夫妻(一个丈夫 对应 一个妻子)
db.WifeAndHusband.insert([ { name:"黄蓉", husband:{ name:"武大郎" } },{ name:"潘金莲" husband:{ name:"武大郎" } } ])
一对多(one to many)/多对一(many to one)
- 一对多/多对一
- 父母 ==> 孩子
- 用户 ==> 订单
- 文章 ==> 评论
#一对多,用户(users)和 订单(orders) db.user.insert([ {username:"swk"}, {username:"zbj"} ]) #添加一个属于“swk”的订单 db.order.insert( { list:["apple","banana","pear"], user_id = "swk"的id } ) #查找用户swk的订单 #1.获取swk的id var user_id = db.users.findOne({username:"swk"})._id #2.查找用户swk的订单 db.order.find({user_id:user_id}) #两个 user_id 的区别:前者是添加swk订单时的属性,后者是获取swk的id值
多对多(many to many)
- 多对多
- 分类 - 商品
- 老师 - 学生
# 插入老师列表 db.teacher.insert([ {name:"洪七公"}, {name:"黄药师"}, {name:"龟仙人"} ]) # 插入学生列表,并添加老师id db.stus.insert([ { name:"郭靖", tech_ids:[洪七公的id, 黄药师的id] }, { name:"孙悟空", tech_ids:[洪七公的id, 黄药师的id, 龟仙人的id] } ])