Mongodb03 - 数据操作(关系运算、逻辑运算、模运算、范围运算)

  只要是数据库那么就绝对离不开最为核心的功能:CRUD ,所以在MongoDB里面对于数据的操作也是有支持的,

需要提醒的是,除了增加之外,其他的都很麻烦。

1、数据增加  =>  db.集合.insert();  

  范例:增加一个简单的数据

  (01)、db.infors.insert({"url": "www.mldn.cn"});

  (02)、数组形式 :如果想保存多个数据,那么就使用数组;

      db.infors.insert([{"url": "www.mldnjava.cn"},{"url": "www.mldnphp.cn"}]);

      

  (03)、保存10000个数组?用javascript语言;如果数据保存很多的情况下,列表是不会全部列出,只会列出一部分。

      for(var i=0; i < 100; i++) {

        db.infors.insert ({"url": "www.mldn.cn" + i})

      };

      

 2、数据查询

  (01)、任何的数据库中,数据的查询操作都是最为麻烦的,而且MongoDB数据库里面,对于查询非常到位

      有关系运算、逻辑运算、数据运算、正则运算等。

  (02)、首先对于数据的查询操作核心的语法:“ db.集合名称.find({查询条件}, [{设置显示的字段}]);”

  (03)、范例:最简单的用法就是直接使用find()函数完成查询

      1、db.infors.find(); #查询整个数据库信息

      2、db.infors.find({"url": "www.mldn.cn"}); #查询数据库中url是www.mldn.com的数据

         发现在进行数据查询的时候也是按照JSON的形式设置的相等关系,整个开发之中不可能离开JSON数据。

         对于设置的显示字段严格来讲称为数据的投影操作。如果不需要显示的字段设置“0”,需要显示的字段设置“1”。

      3、范例:db.infors.find({"url": "www.mldn.cn"}, {"id":0, "url": 1});

            筛选url,id=0不显示,url=1显示

  (04)、数据查询可以进行优雅的漂亮的显示使用函数:pretty();

      1、db.infors.find({"url": "www.mldn.cn"}, {"id":0, "url": 1}).pretty(); #数据列多的时候一定可以漂亮显示

  (05)、范例:查询单个数据

      1、db.infors.findOne({"url": "www.mldn.cn"}, {"id":0, "url": 1});

  (06)、利用以上的查询可以实现格式化的输出化结果,前提:列的内容必须多

3、关系查询:

  (01)、在MongoDB中支持的关系查询操作:大于($gt)、小于($lt)、大于等于($gte)、小于等于($lte)、不等于($ne)、等于(key:value、$eq)

      想要正常使用,需要准备一个数据集合。

  (02)、范例:定义一个学生信息集合 =>  

      db.students.insert({"name":"张三", "age":15, "sex": "男", "seore": 90, "adderss": "海淀区"});

      db.students.insert({"name":"李四", "age":16, "sex": "男", "seore": 88, "adderss": "海淀区"});

      db.students.insert({"name":"小红", "age":19, "sex": "女", "seore": 98, "adderss": "海淀区"});

      db.students.insert({"name":"王五", "age":16, "sex": "男", "seore": 80, "adderss": "朝阳区"});

      db.students.insert({"name":"晓敏", "age":17, "sex": "女", "seore": 99, "adderss": "朝阳区"});

      db.students.insert({"name":"赵六", "age":18, "sex": "男", "seore": 90, "adderss": "海淀区"});

      db.students.insert({"name":"刘张关", "age":15, "sex": "男", "seore": 90, "adderss": "海淀区"});

      

         范例:查询姓名是张三的数据  =>  db.students.find({"name": "张三"}).pretty();  *注:只有等于操作是这么写

         

         范例:查询年龄大于15岁的学生  =>  db.students.find({"age": {"$gt": 15}}).pretty();

         大于、小于、不等于....和等于操作不一样,需要在选项(age)后再加一个JSON,参数1:关系操作符,参数2:选项(19);

         

             此时与之前最大的区别就在于,在一个JSON结构里面需要再定义其它的JSON结构,记住并且这种风格在日后通过程序进行操作的时候依然如此。

4、逻辑运算

  (01)、逻辑运算主要 就是三种类型:与( $and )、或( $or )、非( $not、$nor ) 

  (02)、范例:查询学生信息 19 ~  20的学生信息  =>  db.students.find({"age": {"$gt":17, "$lt": 19}}).pretty();

       在逻辑运算中,“and”是最容易的,只需要“,”逗号分隔就可以实现。

       

  (03)、范例:查询年龄大于16, 或者成绩大于90分的学生信息  => db.students.find({"$or": [{"age": {"$gt": 16}},{"seore": 90}]}).pretty();

          逻辑运算中,或的连接需要为数据在数组中设置过滤条件;

5、求摸

  (01)、摸的运算使用 “ $mod ” 来实现,语法  =>  "{ $mod : [数字, 余数] }";

  (02)、范例:db.students.find({"age": {"$mod": [17, 0]}).pretty();   

       利用求模计算可以编写一些数学的计算公式。   

6、范围查询

  (01)、只要是数据库,必须存在有 “ $in ” (在范围之内)、“ $nin ”(不在范围之内) ;

  (02)、范例:db.students.find({"name": {"$in": ["张三", "李四", "晓敏"]}});

       

        在实际的工作中,范围操作很重要。

posted @ 2017-12-26 19:41  FallenLunatic  阅读(533)  评论(0编辑  收藏  举报