MongoDB入门-文档间的关系
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
/* 文档间的关系: 一对一(one to one): 一对一关系如中国合法夫妻关系(一个丈夫对应一个妻子) 在MongoDB中可以通过内嵌文档的形式来体现一对一的关系。 一对多(one to many): 一对多关系如网购的用户和订单(一个用户可以有多个订单,但是一个订单只能属于一个用户) 在MongoDB中也可以通过内嵌文档的形式来映射一对多的关系。 多对多(many to many): 多对多关系如老师和学生的关系。 */ //一对一模型 db.wifeAndHusband.insert([ { name:"黄蓉", husband:{ name:"郭靖" } }, { name:"潘金莲", husband:{ name:"武大郎" } } ]) db.wifeAndHusband.find({}) //一对多模型 db.users.insert([ { username:"孙悟空" }, { username:"猪八戒" } ]) //查看所有的用户信息 db.users.find({}) db.orders.insert({ list:["香蕉","牛肉","驴肉","蟠桃","酒"], user_id:ObjectId("5e0ddd0dfddfdcbbd02328b8") }) db.orders.insert({ list:["棒棒糖","辣条","雪糕","橙子","火龙果"], user_id:ObjectId("5e0ddd0dfddfdcbbd02328b8") }) db.orders.insert({ list:["西瓜","女儿红","驴肉","麻辣烫","酸辣粉"], user_id:ObjectId("5e0ddd0dfddfdcbbd02328b9") }) //查看所有订单信息 db.orders.find({}) //只查看孙悟空的订单 var swk_id = db.users.findOne({username:"孙悟空"})._id db.orders.find({user_id:swk_id}) //多对多模型 db.teachers.insert([ {name:"纲手"}, {name:"大蛇丸"}, {name:"好色仙人"} ]) db.students.insert([ { name:"漩涡鸣人", teach_ids:[ ObjectId("5e0de1dbfddfdcbbd02328bd"), ObjectId("5e0de1dbfddfdcbbd02328bf") ] }, { name:"宇智波佐助", teach_ids:[ ObjectId("5e0de1dbfddfdcbbd02328bd"), ObjectId("5e0de1dbfddfdcbbd02328be"), ObjectId("5e0de1dbfddfdcbbd02328bf") ] }, ]) db.teachers.find({}) db.students.find()