1. 程式人生 > >MongoDB的基礎語句

MongoDB的基礎語句

 

 

1.啟動mongodb服務,並設定資料存放位置
   1.切換到對應為mongodb的bin目錄位置(我的是在E盤)
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 student 
如果對應的資料庫存在,表示使用該資料庫
如果對應的資料庫不存在,表示建立該資料庫
        如果是剛建立的資料庫,而又沒有資料,則該資料庫不顯示
  插入一個文件: 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})