標籤:
前段時間工作上面由於沒有多少事所以玩了玩mongodb,學習了它的基本文法,然後現在在這裡做一個簡單的總結。
1.我是在win平台上面,啟動的話比較麻煩,所以我就簡單的把啟動過程做了個批次檔
啟動指令碼
:啟動mongodb的批次檔,到mongodb的bin目錄下面 D: cd "Program Files" cd MongoDB\Server\3.2\bin:其中D盤下面的data,db目錄是自己手動建立的:啟動帶有的參數 --auth(開啟使用者存取權限):--dbpath(資料存放區路徑) mongod.exe --auth --dbpath D:\data\db
2.一些簡單基本文法
#建立或者切換資料庫use admin#查詢方法db.system.users.find()#格式化的查詢結果db.userinfo.find().pretty()查詢比較符等於 {<key>:<value>} db.col.find({"by":"菜鳥教程"}).pretty() where by = ‘菜鳥教程‘小於 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50小於或等於 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50大於 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50大於或等於 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50不等於 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50#查詢年紀大於等於25的資訊db.userinfo.find({"age":{$gte:25}}).pretty()#查詢age欄位是String類型的記錄。顯示的結果集(預設顯示_id欄位)只有user_name和age這兩個欄位。 db.userinfo.find({"age":{$type:2}},{_id:0, "user_name":1, "age":1})#刪除使用者db.dropUser(‘root‘)#建立新的使用者db.createUser({‘user‘:‘root‘, ‘pwd‘:‘000000‘,‘roles‘:[{‘role‘:‘readWrite‘, ‘db‘:‘mytest‘}, {‘role‘:‘readWrite‘, ‘db‘:‘admin‘}]})#mongodb建立集合對象 db.XXX:表示如果XXX存在則往這裡直接插入資料,如不存在,則建立對應的集合#插入資料 db.COLLECTION_NAME.insert(document)db.userinfo.insert([{user_name:‘1‘, age:10, sex:1},{user_name:‘2‘, age:10, sex:0}])#mongodb更新語句更新單條語句 如果 $set欄位不存在,若鍵不存在,會建立db.item_info.update({"item_id":"c9aea5ea-c29d-43ec-8205-fdb1e69934b7"},{$set:{"item_name":"test_update", "test":"test_add"}})$unset關鍵字,刪除對應的key值去除【item_name】、【test】這兩個key db.item_info.update({"item_id":"c9aea5ea-c29d-43ec-8205-fdb1e69934b7"},{$unset:{"item_name":"test_update", "test":"test_add"}})#mongodb更新語句更新多條語句db.userinfo.updateMany({"user_name":"1"}, {$set:{"user_name":"nie"}})#更新age欄位<= 20的欄位為wewe值db.userinfo.updateMany({"age":{$lte:20}}, {$set:{"age":"wewe"}})#mongodb刪除語句db.userinfo.remove({"user_name":"2"})刪除所有資料db.userinfo.remove({})#type $type操作符是基於BSON類型來檢索集合中匹配的資料類型,並返回結果。// 查詢age欄位是string類型的所有記錄db.userinfo.find({"age":{$type:2}})
#MongoDB sort()方法 在MongoDB中使用使用sort()方法對資料進行排序,sort()方法可以通過參數指定排序的欄位,並使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用於降序排列。db.userinfo.find({},{_id:0,"user_name":1, "age":1}).sort({"age":1}).pretty() #建立索引 過在建立索引時加background:true 的選項,讓建立工作在後台執行 db.userinfo.ensureIndex({"user_name":1},{background:true})最大範圍
- 集合中索引不能超過64個
- 索引名的長度不能超過125個字元
- 一個複合索引最多可以有31個欄位
#MongoDB 彙總函式
#刪除 db.item_info.deleteOne({"item_name":"update_item_name"}) db.item_info.find({"item_name":"update_item_name"}).count() DeleteResult delete = item.deleteMany(Filters.eq("item_name", "update_item_name")); System.out.println(delete.getDeletedCount());#mongodb語句explain> db.item_info.find({}).explain(){ "queryPlanner" : { "plannerVersion" : 1, "namespace" : "test.item_info", "indexFilterSet" : false, "parsedQuery" : { "$and" : [ ] }, "winningPlan" : { "stage" : "COLLSCAN", "filter" : { "$and" : [ ] }, "direction" : "forward" }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "Lenovo-niejian", "port" : 27017, "version" : "3.2.8", "gitVersion" : "ed70e33130c977bda0024c125b56d159573dbaf0" }, "ok" : 1}#mongodb語句like(Regex)如果檢索需要不區分大小寫,我們可以設定 $options 為 $i。以下命令將尋找不區分大小寫字串 w3cschool.ccdb.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})db.item_info.find({"item_id":{$regex: /c9aea5ea/}})
Mongodb的基本文法