幫助help
help -----幫助
db.help()
-----顯示當(dāng)前文檔的方法
db.test.help()
-----顯示數(shù)據(jù)庫下test集合(document\表)所有
使用的方法
db.test.find().help()
-----顯示當(dāng)前數(shù)據(jù)下test集合的所有數(shù)據(jù)方法
db 顯示當(dāng)前數(shù)據(jù)名稱
-----首次進入時 默認(rèn)為test
創(chuàng)建挽懦、切換數(shù)據(jù)庫
use movie -----切換 創(chuàng)建數(shù)據(jù)庫 (有點話是創(chuàng)建、沒有的時候回創(chuàng)建)
-----首次創(chuàng)建的數(shù)據(jù)庫不會顯示 應(yīng)為內(nèi)容為空
db.createCollection("a") -----創(chuàng)建文檔(表) 此時就可以在可視化工具中看到數(shù)據(jù)庫
db.createCollection("a",{size:20,capped:true,max:200}) -----創(chuàng)建文檔 不建議
show dbs -----顯示數(shù)據(jù)庫列表
show collections -----獲取集合列表
db.stats() -----顯示當(dāng)前數(shù)據(jù)庫的狀態(tài)(信息)
db.version() -----顯示當(dāng)前數(shù)據(jù)庫的版本信息
db.getMongo() -----獲取當(dāng)前數(shù)據(jù)庫連接的服務(wù)器信息
connection to 127.0.0.1:27017
db.getName() -----獲取當(dāng)前數(shù)據(jù)庫的名稱突雪,相當(dāng)于db
db.dropDatabase() -----刪除當(dāng)前數(shù)據(jù)庫 小bug刪除后使用db還是顯示原數(shù)據(jù)庫名稱
db.collection.drop() -----刪除集合
db.getCollection("collName"); ------得到指定名稱的聚集集合
db.getCollectionNames(); ------得到當(dāng)前DB的所有的聚集集合 以數(shù)組的形式
db.printCollectionStats(); ------顯示當(dāng)前db所有集合的狀態(tài)
增
1.插入文檔
db.ele.insert({name:1,age:20,sex:"man"}) ------插入以對象的方式
db.ele.save({name:2,age:20,sex:"women"})
db.ele.insertOne({name:20,age:0}) ------單次插入
db.ele.insertMany([{},{}]) ------插入多個文檔鳞陨,以數(shù)組存儲對象的方式
刪
remove({},false,err)
一個參數(shù)為匹配條件
第二個參數(shù)為是否只刪除第一個 默認(rèn)false 全部刪除 設(shè)置為true時 只刪除第一個匹配的(也可以設(shè)置為1)
第三個為拋出的異常
db.ele.remove({name:"tehui"})
-----會刪除匹配到的多個文檔
db.ele.remove({name:"tehui"},true)
-----只刪除了第一個匹配的
db.ele.deleteMany({"business_flag":2})
------刪除多個文檔時可用帚戳,刪除一個時也可用
改
updatae({},{},true,false)
4個參數(shù) 第一個是匹配的條件
第二個更新的屬性
第三參數(shù) 匹配不到時 是否插入 默認(rèn)為false 不插入
第四個參數(shù) 是否只跟新第一個匹配到的文檔 默認(rèn)false 只更新第一次匹配到的文檔
更新business_flag為14的數(shù)據(jù)棵帽,使它name=新店特惠1
db.ele.update({"business_flag":14},{$set:{name:"tehui"}})
-----WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
-----匹配到1個 更新1個
db.ele.update({"business_flag":24},{$set:{name:"tehui"}},false)
db.ele.update({"business_flag":24},{$set:{name:"tehui"}})
----第三個參數(shù)為false時 和默認(rèn)時
----WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })
db.ele.update({"business_flag":24},{$set:{name:"tehui"}},true)
----第三個參數(shù)為true時
----WriteResult({
"nMatched" : 0,
"nUpserted" : 1,
"nModified" : 0,
"_id" : ObjectId("59662b20e6c44cb771e9e3dc")})
db.ele.update({"is_in_serving":true},{$set:{name:"111"}},false,false)
----第四個參數(shù)為默認(rèn)值和false時 只匹配了第一個
db.ele.update({"is_in_serving":true},{$set:{name:"111"}},false,true)
----設(shè)置為true 是所有滿足條件的都匹配 和更新
當(dāng)匹配的文檔沒有改字段時添加字段
db.ele.update({},{$inc:{business_flag:1}},false,true)
查
find 第一個參數(shù)是限制條件 {}對象 空的時候表示沒有限制,會匹配所有 鍵值對 其中值也可以為對象
第二個是顯示的格式 {}對象 鍵值對值為0時不顯示 1為顯示 不設(shè)置是默認(rèn)全顯示
簡單的查詢:
db.ele.find({}) ------查詢結(jié)果是沒有使用任何符號相連接的旺矾,
每一個對象又叫做一個document(文檔----行)
db.ele.find({},{name:1,_id:0})
db.elelist.find({"name":"下午茶"})
----該方法會顯示name為下午茶的集合的所有數(shù)據(jù) 體驗不好
db.ele.find({name:"美食"},{name:1,_id:0})
----查詢條件 name:美食蔑鹦,顯示name _id不顯示
查詢大于某一條件:
db.ele.find({"business_flag":{$gt:5}},{_id:0,name:1})
-----大于5的部分用對象實現(xiàn)夺克,對象內(nèi)部大于用$gt
小于 {$lt:10}
db.ele.find({"business_flag":{$lt:10}},{_id:0,name:1})
------小于10的部分
大于等于{$gte:num}
db.ele.find({"business_flag":{$gte:4}},{_id:0,name:1})
-----$gt 后加e 改成$gte
小于等于{$lte:num}
db.ele.find({"business_flag":{$gte:4}},{_id:0,name:1})
并且{obj1,obj2}
db.ele.find({"business_flag":{$lt:16},id:{$gt:10}},{_id:0,name:1})
------第一參數(shù)設(shè)置兩個屬性 即設(shè)置兩個條件
查詢num1~num2之間的數(shù)據(jù){$gt:num,$lt:num1}
db.ele.find({"business_flag":{$gt:6,$lt:14}},{_id:0,name:1})
-------鍵值對 值也可以設(shè)成對象的形式嚎朽。
查詢?nèi)ブ? distinct(獨特性)
db.ele.distinct("business_flag")
-------即查詢文檔中 某一屬性的值的種類
模糊查詢 //
db.ele.find({name:/午/},{_id:0,name:1})
//中的字符串不用加'' 加了會認(rèn)為是匹配"午"而不是 午
查詢后的數(shù)據(jù) 排序 sort({"鍵":值}) 其中鍵表示按什么排序 值為1是升序 值為-1是為降序
db.ele.find({},{"business_flag":1,"name":1,_id:0}).sort({"business_flag":1});
---升序
db.ele.find({},{"business_flag":1,"name":1,_id:0}).sort({"business_flag":-1});
---升序
查詢前num條 limit(num)
db.ele.find({},{_id:0,name:1,"business_flag":1}).limit(5)
-----查詢前5條 包括第5條
查詢index后的數(shù)據(jù) skip(num)
db.ele.find({},{_id:0,name:1,business_flag:1}).skip(6)
-------查詢第7條開始后的數(shù)據(jù)
查詢a~b之間的數(shù)據(jù)
db.ele.find({},{_id:0,name:1,business_flag:1}).limit(5).skip(6)
其實相當(dāng)于查詢第6條之后的5個信息 不包括第6條信息
查詢匹配條件的文檔集的數(shù)
db.ele.find({"business_flag":{$lt:14}},{_id:0,name:1,business_flag:1}).count()
----------輸出的結(jié)果是匹配的數(shù)目
匹配含有某一條件的集合的數(shù)目
db.ele.find({"business_flag":{$exists:true}}).count()