一、操作mongodb数据库

1、创建、删除数据库

1、创建
语法: use 数据库名
注意:  如果数据库不存在则创建数据库,否则切换到指定的数据库
注意: 如果刚刚创建的数据库不在列表内,如果要显示他,我们需要向刚刚创建的数据库中插入一些数据
( db.student.insert({name:"tom",age:18,gender:1,address:"北京",inDelete:0}) )

2、删除
前提:使用当前数据库(use 数据库名)
 db.dropDatabase()

2、 查看所有数据库

show dbs  

3、查看当前正在使用的数据库

1、db
2、db.getName()

4、断开连接

eit

5、查看命令api

help

二、集合操作

1、查看当前数据库下有哪些集合
    show collections

2、创建集合
  a、 
      语法:db.createCollection("集合名")
      示例:db.reateCollection("class")
  b、
      语法:db.集合名.insert(document)
      示例: db.student.insert({name:"toom",age:18,gender:1,address:"北京",inDelete:0})
    
 区别:两者的区别在于前者创建的是一个空的集合,后者创建一个空的集合并添加一个文档
 
3、删除当前数据库中的集合
    语法: db.集合名.drop()
    示例: db.class.drop()

三、文档操作

1、 插入文档

    1、使用insert()方法插入文档
        语法:     db.集合名.insert(文档)
        插入一个: db.student.insert({name:"lilei",age:19,gender:1,address:"北京",inDelete:0})
        语法:db.集合名.insert([文档1,文档2,.....,文档n])
        插入多个: db.student.insert([{name:"韩美美",age:18,gender:0,address:"北京",inDelete:0},{name:"韩梅梅",age:20,gender:0,address:"上海",inDelete:0}])
    
    2、使用save()方法插入文档
        语法:db.集合名.save(文档)
        说明: 如果不指定_id字段,save()方法类似于insert()方法。
        如果指定_id字段,则会更新_id字段的数据
        示例1:db.student.save({name:"poi",age:22,gender:1,address:"石家庄",inDelete:0})
        示例2:db.student.save({_id:ObjectId("5ecae278120cbce3cecfd52e"),name:"poi",age:23,gender:1,address:"石家庄",inDelete:0})
        

2、更新文档

1、 update()方法用于更新已存在的文档
    语法:
        db.集合名.update(
            query,
            update,
            {
            upset: boolean,
            multi: boolean,
            writeConcern: document
            }
              )
     参数说明:
         query: update的查询条件,类似于sql里update语句内where后面的内容
         update: update的对象和一些更新的操作符($set,$inc)等,$set直接更新,$inc在原有的基础上累加后更新
         upset: 可选,如果不存在update的记录,是否当新数据插入,true为插入,False为不插入,默认为false 
          multi: 可选,mongodb默认为false,只更新找到的第一条记录,如果这个参数为true,就按照条件查找出来的数据全部更新
          writeConcern: 可选,抛出异常的级别
          
     需求: 将lilei的年龄更新为25
     示例: 
             db.student.update({name:"lilei"},{$set:{age:25}})
         累加: db.student.update({name:"lilei"},{$inc:{age:25}}) 
             
         全改: db.student.update({name:"poi"},{$set:{age:40}},{multi:true})
         
2、 save()方法通过传入的文档替换已有文档
    语法: 
        db.集合名.save(
            document,
            {
            writeConcern:<document>
            }
        )
     参数说明: 
         document       文档数据
         writeConcern:  可选,抛出异常的级别

3,删除文档

    说明: 在执行remove()函数前,先执行find()命令来判断执行的条件是否存在是一个良好的习惯
    
    语法:
        db.集合名.remove(
        query,
        {
            justOne: boolean,
            writeConcern: document
            
        }
         )
         
        参数说明:
        query,可选,删除的文档的条件
        justOne: 可选,如果为true或1,则只删除一个文档
        writeConcern:  可选,抛出异常的级别
        
        示例: db.student.remove({name:"tom"})

4、文档查询

1、 find()方法
    查询集合下的所有的文档(数据)
    语法: db.集合名.find()
    示例: db.student.find()
    
2、find()方法查询指定列
    语法: db.集合名.find(
        query,
        {
        <key>:1,
        <key>:1
        }
    )
    参数说明:
        query: 查询条件
        key:     要显示的字段, 1表示显示
    
    示例:db.student.find({gender:0},{name:1,age:1})
    
3、pretty()方法以格式化的方式显示文档,
    示例: db.student.find().pretty()
    
4、 findOne() 方法查询匹配结果的第一条数据
    示例: db.student.findOne({gender:0})
        

5、查询条件操作符

作用: 条件操作符用于比较两个表达式并从Mongodb集合中获取数据
 
    1、 大于  -  $gt    
        语法: db.集合名.find({<key>:{$gt:<value>}})
        示例: db.student.find({age:{$gt:20}})
    
    2、 小于等于  -  $gte
        语法: db.集合名.find({<key>:{$gte:<value>}})
        示例: db.student.find({age:{$gte:20}})
    
    3、 小于     -  $lt
        语法: db.集合名.find({<key>:{$lt:<value>}})
        示例: db.student.find({age:{$lt:20}})
    
    4、 小于等于 -  $lte
        语法: db.集合名.find({<key>:{$lte:<value>}})
        示例: db.student.find({age:{$lte:20}})
    
    5、 大于等于 和小于等于 -  $gte 和 $lte   
        语法: db.集合名.find({<key>:{$gte:<value>,$lte:<value}})
        示例: db.student.find({age:{$gte:20,$lte: 10}})
    
    6、 等于      - :
        语法: db.集合名.find({<key>:<value>})
        示例: db.student.find({age:20})
    
    7、 使用_id进行查询
        语法: db.student.find({"_id":ObjectId("id值")})
        示例: db.student.find({"_id":ObjectId("5ecae84d120cbce3cecfd52f")})
    8、 查询某个结果的集的数据条数
              db.student.find().count()
              
    9、 查询某个字段的值当中是否包含另一个值
            示例:db.student.find({name:/ile/})
    
    10、查询某个字段的值是否以另一个值开头
            示例: db.student.find({name:/^li/})

6、条件查询and和or

1、AND条件
    语法: db.集合名.find({条件1,条件2,....条件n})
    示例: db.student.find({gender:0,age:{$gt:16}})

2、OR条件
    语法:
        db.集合名.find(
            {
            $or:[
            条件1,条件2,....条件n
            ]
            }
        )
    示例: db.student.find({$or:[{age:17},{age:{$gt:20}}]})
    
3、AND和OR联合使用
    语法:
        db.集合名.find(
        {
        条件1,条件2,$or:[{条件3},{条件4}]
        })
     示例:db.student.find({gender:0,age:{$gt:16},$or:[{age:21},{age:{$lt:30}}]})

7、limit、skip

1、limit(): 读取指定数量的数据记录
    db.student.find().limit(3)

2、skip(): 跳过指定数量的数据 
    db.student.find().skip(3)

3、skip与limit联合使用
    通常用这种方式来实现分页功能
    示例:db.student.find().skip(3).limit(3)

8、排序

语法: db.集合名.find().sort({key:1|-1})
示例: db.student.find().sort({age:1})
注意: 1表示升序,-1表示降序
Last modification:July 1st, 2020 at 04:11 am
如果觉得我的文章对你有用,请随意赞赏