mongodb常用指令語法,進階操作語法

/*1.基本常用指令
-查詢所有的數據庫
show dbs
進入要進行操作數據庫
use project(數據庫名稱)
刪除數據庫
-db.dropDatabase()
刪除文檔
-db.drop()
-進入需要操作的集合
show collections
-查詢所有的集合
*/

/*2.代指集合文檔,

mongodb插入指令

db.<collections>.insert()插入語句
-向集合中插入一條或多條語句(以數組的方式[{},{}])
-當我們向集合中插入數據,會自動給我們插入一個"_id",目的是作爲文檔的唯一標識,以時間軸的方式比配ID
-"_id"默認ID可以修改
db.<collections>。insertOne()
-插入一條語句
db.<collections>.insertMany()
-插入多條語句

查詢指令

db.<collections>.find();
-查詢全部文檔內容
db.<collections>.findOne();
-查詢一個滿足條件的第一個文本內容
db.<collections>.findMany();
-多文本內容查詢,默認查詢符合滿足條件的第一個內容
db.<collections>.find().count()
-查詢所有結果的數量

修改指令

###db..update(查詢條件,新對象)
-替換 update()默認情況會用新對象替換舊對象 ,修改一個
我們一般用另一種方式來修改 用$set來修改指定屬性值
$unset:刪指定屬性值

db.stus.updateMany({查詢要進行修改具體數據},
         {
             $unset:{//刪除指定屬性操作
              sex:' ',//'裏面隨便寫什麼值,屬性都會刪除'爲空
              age:' ',
              adress:'a',
             }
         }` 
)
db.stus.update({查詢要進行修改具體數據},
        {
          $set:{
          adress:'啊啊啊',
              }
          },
          {
              multi:true//傳入屬性,修改多個
          }    
)
-update默認只修改一個,使用屬性multi:true,
db.<collections>.updateMany()
-修改符合條件多個文本內容
db.<collections>.updateOne()
-修改一個文本內容
db.<collections>.replaceOne();
-新對象替換舊對象

刪除指令

db.<collections>.remove()
-刪除默認刪除該文檔中全部文本內容,第二個參數專遞一個true,這隻刪除一個
-remove({})如果專遞一個空對象 這刪除全部文本內容,
-remove()不傳參數報錯
db.<collections>.deleteOne()
-刪除一個文檔文本內容
db.<collections>.deleteMany();
-刪除多個文本內容

db.dropDatebase()
-刪除數據庫
db.drop()
-刪除文檔
*/

進階型,同時我也舉例了一些進階型的操作指令

//---在內嵌文檔時如何進行查詢就該操作 如果要查找則需要用到引號 db.<collection>.find({"hobbise.city":'內容'})
//	---對數據庫中以$push方法添加到數組中新元素 db.collection.update({naem:' '},{$push:{"字段名.數組名":'內容'}})
//	---$addtToSet方法,向數組中添加一個 新元素 如果該元素有就不會添加
//	---MongoDB一些常用操作符$gt(>) $gte(>=) $lt(<) $lte(<=) $eq(操作滿足條件的數據) 
//	---MongoDB 對操作分頁的數據大小的屬性值 skip()--》指定跳過數據條數 limit()-->限制數據的大小 sort()---> 0升序 -1 降序
//  ---具體可以詳細瀏覽MongoDB官網文檔,或者查看下列操作
 
show dbs//查詢數據庫
show collections//查詢集合
use my_test//進入要操作的數據庫
db.createCollection('users')//創建一個集合
db.users.insert([{name:'孫悟空',age:18,adress:'shanghai'},{name:'tangseng'}])
db.users.find()
db.users.update({name:'孫悟空'},{name:'tangseng'})
//向user集合文檔爲孫悟空,添加一個hobbise:{{city:['shanghai,'hero']}}

 
db.users.update(
        {name:'孫悟空'},
        {$set:{
            hobbise:{city:['shanghai','hero']}
            }
        }
)
db.users.update(
        {name:'孫悟空'},
        {$unset:{
        adress:''
            }
        }
)
//向user集合文檔爲tangseng,添加一個hobbise:{movie:['大話西遊','多來愛夢'}
db.users.update(
        {name:'tangseng'},
        {$set:{
        hobbise:{movie:['大話西遊','多來愛夢']}
            }
        }
)

//查詢喜歡的hello
//mongoDB中支持直接通過內嵌文檔進行查詢,如果要查詢文檔則要通過.的形式比配
//如果要通過內嵌文檔進行查詢則必須要用引號–>db.users.find({“hobbise.citye”:“hello”})
db.users.find()
db.users.find({“hobbise.citye”:“hello”})
//向tangseng中添加一個電影貓和老鼠‘
//push//push 向數組中添加一個新的元素 //addToSet 向數組中添加一個元素 如果元素有,則不會添加

db.users.update(
    {name:'tangseng'},
    {$push:{
            "hobbise.movie":'貓和老鼠'
        }
    }

)
db.users.update(
    {name:'tangseng'},
    {$addToSet:{
            "hobbise.movie":'貓和老鼠'
        }
    }

)

db.users.find()
//刪除喜歡shanghai的用戶
db.users.remove({‘hobbise.city’:‘shanghai’})
//刪除文檔
db.users.remove({})//沒有刪除文檔,只是刪除文檔中所有的文本內容
show collections
db.users.drop()
show collections

//向numbers集合中插入20000條數據
//用for循環對數據進行插入則需要6.2s執行完成
for(var i=1 ; i<=20000;i++){
    db.numbers.insert({num:i})
}
//而用數據的方法只需要就能0.3s執行完成,極大的提高了性能
var arr = []
for(var i=1;i<=20000;i++){
    arr.push({num:i});
}
db.numbers.insert(arr)
db.numbers.remove({});
db.numbers.find()
//查詢numbers中num的數據爲500的文檔
db.numbers.find({num:500})
//查詢numbers中大於5000的文檔//操作符$gt(>) $gte(>=) $lt(<) $lte(<=)
db.numbers.find(
        {
        num:{$gt:500}
        }        
)
db.numbers.find({num:{$gte:500}})
db.numbers.find({num:{$eq:500}})//查詢到五百 $eq 返回與自身符合條件的一條數據
//查詢numbers中小於50的文檔
db.numbers.find({num:{$lt:50}})//小於五十的數據
db.numbers.find({num:{$lte:50}})//小於等於50的數據
//查詢numbers中大於40小於50的文檔
db.numbers.find({num:{$gt:40,$lt:50}})
db.numbers.find({num:{$gte:40,$lte:50}})//大於等於40小於等於50的文檔
//查詢numbers中大於19997的文檔
db.numbers.find({num:{$gt:19997}})

//查看numbers集合中的前十條數據
db.numbers.find({num:{$lt:10}})//會查詢到,但是如果中間少了578幾條數據 ,那麼他還會查詢到前十條數據嗎
//所以MongoDB中一個屬性limit()-->一個限制屬性

db.numbers.find().limit(10)

//查看numbers集合中的第十一條數據到第20條
//所以MongoDB中一個屬性skip()數據 跳過指定的數據條數進行查詢
db.numbers.find({num:{$gt:10,$lt:20}})//會查詢到,但是如果中間少了相應幾條數據,那麼查到的數據將不符合,有侷限性
db.numbers.find().skip(10).limit(10)
db.numbers.find().limit(10).skip(10)//這樣會查詢到嗎,會因爲MongoDB會自動匹配順序
//查看numbers集合中的第二十一掉到30條數據
db.numbers.find().skip(20).limit(10)
//屬性sort() limit() skip()三種屬性組合可以隨意排列文檔順序

– 一種分頁思想,頁碼*頁面大小=總頁碼(總的數據條數將其分頁)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章