美文网首页
课时46-课时49笔记.md

课时46-课时49笔记.md

作者: 九旬大爷的梦 | 来源:发表于2018-11-03 21:23 被阅读2次

    课时46

    集合之间的关系:
    一对多(noe to noe):
    比如:人《-----》身份证 老公《-----》老婆
    一对多(noe to many):
    比如:父母《-----》孩子 用户《-----》物品
    多对多(many to many):
    比如:老师《------》学生

    课时47

    一对一 :
    以内嵌文档的形式体现,

    //一对一
    db.aAndb.insert([
     {name:"杨过",wife:{name:"小龙女",sex:"女"},sex:"男"},
      {name:"杨过",wife:{name:"小龙女",sex:"女"},sex:"男"}
    ])
    
    db.aAndb.find();
    

    一对多::
    通过内嵌文档的形式实现或者通过集合的形式实现

    //一对多  比如  微博 和 微博评论
    //添加微博
    db.weibo.insert([
    {weibo:"世界这么大,我想去看看"},
    {weibo:"我要做一名web开发者!!!"}
    ])
    
    db.weibo.find();
    

    添加评论

    db.comments.insert([
    {
    weibo_id: ObjectId("5bdd89e06a5e78f4cfc2b9c8"),
    list:[
       "那你有钱吗",
        "一个人吗??去呢啊??",
        "加油!!"
    ]
    },
    {
    weibo_id: ObjectId("5bdd89e06a5e78f4cfc2b9c9"),
    list:[
       "那你要学习HTML",
       "那还要你要学习css",
        "加油!!"
    ]
    }
    ]);
    
    db.comments.find();
    

    查询一对多

    var weibo_id= db.weibo.findOne({"weibo" : "世界这么大,我想去看看"})._id;
    db.comments.find({weibo_id: weibo_id});
    

    课时48

    多对多的关系:
    比如:学生《-------》老师
    可以通过多文档关联,

    //多对多  老师《------》学生
    
    //插入老师集合
    db.teachers.insert([
    {
      name:"语文老师",
      teacher_id: 1,
      student_id:[
         1001,
         1002,
         1003
      ]
      },
    {
      name:"数学老师",
      teacher_id: 2,
      student_id:[
         1001,
         1002,
         1003
      ]
      },
    {
      name:"英语老师",
      teacher_id: 3,
      student_id:[
         1001,
         1002,
         1003
      ]
     }
    ])
    
    db.teachers.find();
    
    
    //插入学生集合
    db.students.insert([
    {
      name:"小明",
      student_id: 1001,
      teacher_id:[
         1,
         2,
         3
      ]
      },
    {
      name:"小红",
      student_id: 1002,
      teacher_id:[
         1,
         2,
         3
      ]
      },
    {
      name:"小刚",
      student_id: 1003,
      teacher_id:[
         1,
         2,
         3
      ]
     }
    ])
    
    db.students.find();
    db.teachers.find();
    

    课时49

    排序和索引:

    1. 排序:
      查询文档时,默认是按照_id的值进行排序的(升序)
      sort() 可以用来指定文档的排序规则,sort() 内部需要传递一个对象来指定文档的排序规则 ,其中1表示升序 ,-1表示降序
      limit skip sort 的顺序可以任意改变 ,运行时会自动调整。
      不希望它默认按照id排序 希望它按照工资来排序
    //按照工资升序排列
    
    db.section.find().sort({wages:1});
    
    //优先按照工资升序排列  如果遇到相同的就在  按照id升序排列
    db.section.find().sort({wages: 1},{_id: -1});
    
    
    1. 索引:
      展示字段中 部分内容
      或者是提取这个字段内的部分内容
      在查询时 ,可以在第二个参数来设置查询的结果投影

    索引: find({ 查询条件 }, { 检索范围(1显示 0隐藏)})
    注意: _id如果不设置默认是1(显示) 可手动隐藏

    db.section.find({}, {name: 1});

    //只显示name和wages字段
    `db.section.find({}, {name: 1, _id: 0, wages: 1});`
    
    a07a1f2945204ef671ddebc28871c00.png

    相关文章

      网友评论

          本文标题:课时46-课时49笔记.md

          本文链接:https://www.haomeiwen.com/subject/ydflxqtx.html