zoukankan      html  css  js  c++  java
  • 【MongoDB入门】

    一、基础语法

          1.查看所有数据库

            show dbs

          2.查看当前所在数据库

             db

          3.如果数据库不存在,则创建数据库,否则切换到指定数据库

             use test //创建test数据库

          3.集合操作(切换数据库后db对象为当前的数据库对象)

             db.dropDatabase()                              #删除数据库

             db.createCollection("user")                  #创建user表(集合)

             show collections/show tables                #查看所有集合                                         

             db.集合名称.drop()                               #删除集合

             db.集合名称.insert({"name":"xxx"})      #如果集合不存在直接创建集合并插入数据

             db.集合名称.remove({})                       #删除所有数据

             db.集合名称.remove({"name":”xxx”})   #删除所有匹配数据

             db.集合名称.remove({'name':'11111'},{'justOne':true}) #删除匹配的第一条

             db.user.update({'name':'xxx'},{$set:{'name':'yyy'}},{multi:true})  #找到所有name是xxx的修改为yyy
             db.user.update({'name':'xxx'},{$inc:{'age':1}},{multi:true})          #找到所有name是xxx的修改为age加1
         db.user.update({'name':'wangguang'},{$set:{'name':'11111'}},{'upsert':true}) #查不到数据时新增一条
             db.user.update({'name':'aaa'},{$push:{'hobby':'100'}})  //数组类型追加元素
          db.user.update({'name':'bbb'},{$push:{'hobby':{$each:['666','888']}}})  //数组类型追加多个元素
             db.user.update({'name':'aaaa'},{$set:{'name':'aaa'},$push:{'hobby':'1'}})  //修改普通字段和数组
             db.user.update({'name':'bbb'},{$push:{'hobby':{$each:['999','888'],$sort:-1,$slice:3}}}) 
                   //追加数据数据后,降序排序,截取前三个
             db.test01.update({'name':'aaaa'},{$pull:{'hobby':'2'}})   //删除数组里面的2 此处不能用$eq
             db.test01.update({'name':'aaaa'},{$pull:{'hobby':{$in:['2','3']}}})   //删除数组多个元素

    二、进阶语法

            1.创建集合时指定参数

             db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
         image

    三、条件操作符

      

    四、查询语法

          image

         db.user.find().pretty()  // 相当于select * from user

         db.user.find({'age':{$gt:20}})  //大于20  age的冒号可以省略

         db.user.find({'age':{$gte:20}}) //大于等于20

         db.user.find({'age':{$lt:20}})   //小于20

         db.user.find({'age':{$lte:20}}) //小于等于20

         db.user.find({'age':{$eq:20}}) //等于20

         db.user.find({'age':{$ne:20}}) //不等于20

         db.user.find({'name':/aa/}) //name中包含aaa

         db.user.find({'name':/^aa/}) //name中以aa开头

         db.user.find({'name':/aa$/}) //name中以aa结尾

         db.user.find({'hobby':{$in:['2','8']}}) //in查询

         db.user.find({'hobby':{$nin:['2','8']}}) //not in查询

         db.user.find({'hobby':{$all:['2','8']}})  //同时满足 即有2也有8

         db.user.find({'name':{$type:'string'}}) //name是string类型的

         db.user.find({$or:[{'name':'aaa'},{'name':'bbb'}]})  // where name ='aaa' or name = 'bbb'

         db.user.find({$and:[{'age':{$gt:30}},{$or:[{'name':'aaa'},{'name':'bbb'}]}]})

             //相当于  where age>30 and (name ='aaa' or name = 'bbb')

         db.user.find('age':{$not:{$eq:25}})       //不等于25 等价于$ne

         db.user.find({'name':{$exists:true}})    //包含字段name的文档 包含name值为null的文档

         db.user.find({'name':{$nin:[null,'']}})  //name非空判断

         db.user.find({$nor:[{'name':null},{'name':''}]})  //name非空判断

         db.user.find({$and:[{$where:"this.age>30"},{$where:"this.age<60"}]}) //age大于30小于60 也可以函数返回

         db.user.find({$where:function(){ if(this['hobby'].includes('7')){ return true; }else{ return false; } }})

            //hobby数组包含7的文档返回,尽量不适用where效率低

         db.user.find({'hobby':{$elemMatch:{$eq:'7'}}})  //hobby数组里面至少有一个元素等于7

         db.user.find({'hobby':{$size:3}})                       //hobby数组长度为3的文档返回

         db.user.find().limit(2).skip(1).sort({'age':1,'name':-1})  // 从第二条开始查询返回两条,按年龄升序名称降序

  • 相关阅读:
    Javascript逻辑运算认识
    Javascript基本数据认识
    python爬虫数据提取之bs4的使用方法
    权限和频率组件的使用
    版本控制和认证组件的使用
    drf中View和router的详解
    Serializers组件详解
    REST架构简介
    模型层中QuerySet的学习
    最全总结!聊聊 Python 发送邮件的几种方式
  • 原文地址:https://www.cnblogs.com/mankeu/p/12842674.html
Copyright © 2011-2022 走看看