MongoDB入门-文档间的关系

           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()

 

posted @ 2019-12-28 09:14  尹正杰  阅读(219)  评论(0编辑  收藏  举报