MongoDB 数据库语法

1.启动mongodb服务,并设置数据存放位置
   1.切换到对应为mongodb的bin目录位置
1.切换盘符 e: 
2.cd E:\mongodbinstall\bin 切换到bin目录
   2.启动并设置mongodb数据的存放位置
       1.格式: mongod--dbpath=数据存放位置
       2.mongod.exe --dbpath=E:\mongodbinstall\data


2.客户端连接mongodb服务
   1. 重新启动一个cmd
   2.mongo




库--集合--文档
3.库的操作
    1.查看当前所有的库databases
       show  databases
       或者 show  dbs   
    2.创建/使用 数据库
格式: use 数据库名
use wen 
如果对应的数据库存在,表示使用该数据库
如果对应的数据库不存在,表示创建该数据库
        如果是刚创建的数据库,而又没有数据,则该数据库不显示
 插入一个文档: db.student.insert({name:"小华华"})
    
    db 代表的是当前的数据库  


    3.删除一个数据库
       use 数据库名
       db.dropDatabase()
    4.查看当前使用的数据库
       db
       或者 db.getName()
    5.help
      查看帮助命令
    6.exit 
      退出


4.集合的操作 
    1.查看当前数据库中的集合
       show collections 
    2.创建一个集合
       1.第一种
         db.集合名.insert(数据)
       2.第二种
         db.createCollection(集合名)  


      #第一种创建的是携带数据的集合
      #第二种是创建一个空的集合   
    3.删除一个集合
      格式: db.集合名.drop()
        例: db.sudents.drop() 删除成功返回True
5.文档的操作
   1.添加一个文档
      1.添加一个文档
        格式: db.集合名.insert(数据)  数据是Bjson格式 
        例: db.student.insert({name:"小花花",age:18,address:"深圳",gender:1})
      2.添加多个文档
        格式: db.集合名.insert([文档1,文档2,文档3,...])
     db.student.insert([{name:"春华秋实",age:20,address:"北京",gender:0},{name:"滑不溜秋",age:22,address:"杭州",gender:0},{name:"风花雪月",age:18,address:"上海",gender:1}])


      3.可以是save 也是添加 
         db.student.save({"_id":ObjectId("5a694d08cbf8026d024fe36c"),name:"大花花",age:28,address:"深圳",gender:0})
db.student.insert({"_id" : ObjectId("5a694f8ccbf8026d024fe376"),name:"大花花",age:28,address:"深圳",gender:0})
          
sava添加数据与insert是类似的,但是当插入的数据中指定了_id时,save表示的是修改数据, insert不能修改数据      
  


     
   2.查询文档 
     1.查看所有数据
       格式: db.集合名.find()
       例:   db.student.find()
     select 字段名 from 表名 where 条件


     2.查询数据的格式
格式: db.集合名.find(
query,{
属性名1:1,
属性名2:1
...
}                     
)

query 表示的是查询条件, 可以省略, 不写表示查询所有
属性名1:1,  表示需要显示的属性名,  1表示显示,  如果没有写的表示不显示,  
          如果第二个参数不写,表示显示所有的属性名




        例:查出名字是"大花花的数据"
db.student.find({name:"大花花"})
db.student.find({name:"大花花"},{name:1,age:1})
db.student.find(null,{name:1,age:1})



    
     3.格式化数据
        db.集合名.find().pretty()
     4.查找结果的一条数据
        db.集合名.findOne()




   3.修改文档
      1.第一种修改
        save 
      2.**update 表名 set 列名 = 新的值 where 条件
        格式: db.集合名.update(query,
      upset,
      {
       upsert:boolean,
multi:boolean
      })
query 表示匹配条件
         注意: 以下写法,会将整个数据修改成 age:58
         #db.student.update({name:"春华秋实"},{age:58})
upset: 修改值, $set 表示修改原属性的值 ,  $inc表示在原有属性值上加上一个值
         upsert:boolean,  表示当需要修改的数据不存在时,是否当新的数据插入到集合中
                 true表示当新的数据插入, false是默认值,不会当新的数据插入
multi: boolean  表示是否修改所有符合条件的数据, true 修改所有, 默认false,默认只会修改第一个匹配的



         如: db.student.update({name:"小花花"},{$set:{age:58}})
             db.student.update({name:"小花花"},{$inc:{age:1}})
         
db.student.update({name:"小华华"},{$set:{age:58,name:"大华华"}})
db.student.update({name:"小华华"},{$set:{age:58,name:"大华华"}},{upsert:true})


          db.student.insert([{name:"春华秋实",age:20,address:"北京",gender:0},{name:"滑不溜秋",age:20,address:"杭州",gender:0},{name:"风花雪月",age:20,address:"上海",gender:1}])
        
db.student.update({age:20},{$set:{gender:0}},{multi:true})
   4.删除文档 --*delete from 表名 where 条件*
      格式:db.集合名.remove(query,
{justOne:boolean})


query 表示匹配条件
justOne 表示是否只删除匹配项的一条数据, True表示只删除匹配的第一条数据
                                     ,  默认是false,默认会删除所有的匹配项




db.student.remove({age:20})
db.student.remove({age:20},{justOne:true})
    
6.查询条件 
   1.比较运算符
      1.大于----- $gt 
例: db.student.find({age:{$gt:22}})


      2.大于等于 ---- $gte
例: db.student.find({age:{$gte:22}})


      3.小于 -----  $lt


      4.小于等于  ----- $lte
          
      5.等于-----:
      
      6.大于22且小于30  
      
      7. 根据id进行查询  :  
        例: db.student.find({"_id" : ObjectId("5a697b2751261501dda42204")})
      8.获取结果的数量
         例: db.student.find().count()
      9.查找某个属性值中是否包含某个字符
        <!-- 找出所有包含 "花" 字的 -->
db.student.find({name:/花/})  注意: 没有引号
      10. 匹配某个属性值是否以 某个字符开始^,结束$
         db.student.find({name:/^风/})
       
   2.逻辑运算符
      1.and 逻辑与,且 ------  , 
         1.找出名字是 xxx,且年龄是 yyy
 db.student.find({name:"风花雪月",age:20})
         2.找出年龄小于 30,且年龄 大于 20
 #db.student.find({age:{$lt:30},age:{$gt:20}})
 注意:  db.student.find({age:{$lt:30,$gt:20}})


      2.or  逻辑或,   ------ $or
        1.找出名字是 小花花, 或者 年龄是 20
 db.student.find({$or:[{name:"小花花"},{age:20}]})   
      3.and和or
         1.找出名字是 小花花, 或者 年龄是 20      且      性别是0的
         db.student.find({$or:[{name:"小花花"},{age:20}],gender:0})  
         $or[ ] 或连接,   , 且
7.分页
    1. limit  读取多少条数据
      db.student.find().limit(2)
    2. skip  跳多少条数据
      db.student.find().skip(2)
    3.分页   跳到某个位置,读多少条数据
       db.student.find().skip(2).limit(2)   
   
8.排序
    1.按年龄排序 age 
     1 表示从小到大
     -1 表示从大到小
     db.student.find().sort({age:-1})

猜你喜欢

转载自blog.csdn.net/li_ITboy/article/details/79278148