摘要:如已存在數(shù)據(jù),再次進(jìn)行插入操作時(shí),會(huì)報(bào)主鍵重復(fù)的錯(cuò)誤提示會(huì)把修改為。使用函數(shù),參數(shù)指定查詢條件,不指定條件則查詢?nèi)坑涗洝D挲g為或者名字為,年齡在中,。
基本命令
顯示當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)
show dbs
切換到指定數(shù)據(jù)庫(kù)的上下文,可以在此上下文中管理testdb數(shù)據(jù)庫(kù)以及其中的集合等
use testdb
顯示數(shù)據(jù)庫(kù)中所有的集合(collection)
show collections
查看數(shù)據(jù)庫(kù)服務(wù)器的狀態(tài)
db.serverStatus()
查詢指定數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息
use fragment
db.stats()
基本DDL和DML創(chuàng)建數(shù)據(jù)庫(kù)。
直接通過(guò)use dbname來(lái)切換到這個(gè)數(shù)據(jù)庫(kù)上下文下面,系統(tǒng)會(huì)自動(dòng)延遲創(chuàng)建該數(shù)據(jù)庫(kù)。
use testdb show dbs (此刻可能testdb數(shù)據(jù)庫(kù)并沒(méi)有被創(chuàng)建) db (顯示當(dāng)前使用的數(shù)據(jù)庫(kù),結(jié)果位testdb) db.storeCollection.save({"version":"3.5", "segment":"e3ol6"}) (插入一條數(shù)據(jù)) show dbs (此刻能看到testdb被創(chuàng)建)
刪除數(shù)據(jù)庫(kù)。
直接使用db.dropDatabase()即可刪除數(shù)據(jù)庫(kù)。
創(chuàng)建集合。
db.createCollection("replicationColletion", {"capped":true, "size":10240, "max":17855200}) show collections
刪除集合。
db.mycoll.drop()
增加紀(jì)錄。
兩種插入方法
db.storeCollection.save({"version":"3.5", "segment":"e3ol6"})
db.storeCollection.insert({"version":"3.5", "segment":"e3ol6"})
若新增的數(shù)據(jù)中存在主鍵 ,insert() 會(huì)提示錯(cuò)誤,而save() 則更改原來(lái)的內(nèi)容為新內(nèi)容。
如:
已存在數(shù)據(jù): {_id : 1, " name " : " n1 " },再次進(jìn)行插入操作時(shí),
insert({_id : 1, " name " : " n2 " }) 會(huì)報(bào)主鍵重復(fù)的錯(cuò)誤提示
save({ _id : 1, " name " : " n2 " }) 會(huì)把 n1 修改為 n2 。
相同點(diǎn):
若新增的數(shù)據(jù)中沒(méi)有主鍵時(shí),會(huì)增加一條記錄。
已存在數(shù)據(jù): { _id : 1, " name " : " n1 " },再次進(jìn)行插入操作時(shí),
insert({ " name " : " n2 " }) 插入的數(shù)據(jù)因?yàn)闆](méi)有主鍵,所以會(huì)增加一條數(shù)據(jù)
save({ " name " : " n2 " }) 增加一條數(shù)據(jù)。
循環(huán)插入
for(var i = 1; i < 100; i++) {
db.testCollection.insert({ age : i % 7, name : "name" + Math.round((10 + 20 * Math.random())), password : "123456" })
}
更新記錄。
db.testCollection.update({age: 6}, {$inc: {age: 1}}) //選擇age為6的一條記錄,使他的age加1. db.testCollection.update({age: 7}, {$set: {password : "456789"}}) //選擇age為7的一條記錄,設(shè)置password為456789 //如果條件不匹配一個(gè)記錄,希望能往數(shù)據(jù)庫(kù)里新增一個(gè),設(shè)置update函數(shù)第三個(gè)參數(shù)為true就可以。這里age為8條件匹配不到數(shù)據(jù)。 db.testCollection.update({age: 8}, {$set: {password : "888888"}}, true) //若要批量更新,設(shè)置update函數(shù)第四個(gè)參數(shù)為true就可以了。 db.testCollection.update({age: 7}, {$set: {password : "456789"}}, true, true)
更新version為3.5的記錄的segment值。
查詢一條紀(jì)錄。
db.storeCollection.findOne({"version":"3.5"})
參數(shù)為查詢條件,可選,系統(tǒng)會(huì)隨機(jī)查詢獲取到滿足條件的一條記錄(如果存在查詢結(jié)果數(shù)量大于等于1)。
查詢多條記錄。
db.storeCollection.find()
使用find()函數(shù),參數(shù)指定查詢條件,不指定條件則查詢?nèi)坑涗洝?br>條件查詢包括4種方法:
// 1. $gt(>)、$gte(>=)、$lt(<)、$lt(<=)、$ne(!=)、沒(méi)有特殊關(guān)鍵字(=) db.testCollection.find({age: {$$gt:5}}).count() //14。note:去掉gt前面一個(gè)$符號(hào),$符號(hào)會(huì)被解析,wiznote搞的鬼!!! db.testCollection.find({age: {$gte:5}}).count() //28 db.testCollection.find({age: {$lt:5}}).count() //71 db.testCollection.find({age: {$lte:5}}).count() //85 db.testCollection.find({age: {$ne:5}}).count() //85 db.testCollection.find({age: 5}).count() //14 // 2. 沒(méi)有特殊關(guān)鍵字(&&)、 $or(||)、$in()、$nin() db.testCollection.find({age: {$$gt: 5}, password:"123456"}).count() //年齡大于5且密碼為123456, 14。 //年齡為5或者名字為name26,18 db.testCollection.find({$or:[{age: 5}, {name:"name26"}]}).count() db.testCollection.find({age: {$in: [1,5, 6]}}).count() //年齡在1、5、6中,43。 db.testCollection.find({age: {$nin: [1,5, 6]}}).count() //年齡不在1、5、6中,56 // 3. 正則表達(dá)式匹配,威力強(qiáng)勁 db.testCollection.find({name: /^name1d/}).count() //名字以name1開(kāi)頭的,從name10到name19的記錄。41 //4. where語(yǔ)句,大招來(lái)了 db.testCollection.find({$where:function(){return this.age > 5} }).count()
刪除紀(jì)錄
db.storeCollection.findOne({"version": "3.5"}) (刪除version為3.5的紀(jì)錄) db.storeCollection.findOne({"version": "3.5"}) (返回結(jié)果為空)
統(tǒng)計(jì)集合記錄數(shù)
db.storeCollection.count()
查詢并統(tǒng)計(jì)結(jié)果記錄數(shù)
db.storeCollection.find({"segment":"e30l8"}).count()參考鏈接
> csdn
cnblogs
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/18836.html
摘要:二中常用命令顯示數(shù)據(jù)庫(kù)列表顯示當(dāng)前數(shù)據(jù)庫(kù)中的集合類似關(guān)系數(shù)據(jù)庫(kù)中的表顯示用戶切換當(dāng)前數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建數(shù)據(jù)庫(kù)。注意操作同時(shí)可以創(chuàng)建數(shù)據(jù)庫(kù),如果一個(gè)不存在的數(shù)據(jù)庫(kù)名,則執(zhí)行后,會(huì)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)。如果指定字段,則會(huì)更新該的數(shù)據(jù)。 ..............................................................................
摘要:還原導(dǎo)出的表數(shù)據(jù)部分字段的表數(shù)據(jù)導(dǎo)入還原文件 一、 mongodump備份數(shù)據(jù)庫(kù) 1.一般常用的備份命令格式 mongodump -h IP --port 端口 -u 用戶名 -p 密碼 -d 數(shù)據(jù)庫(kù) -o 文件存在路徑 如果想導(dǎo)出所有數(shù)據(jù)庫(kù),可以去掉-d 2.導(dǎo)出數(shù)據(jù)庫(kù)[root@local ~]# mongodump -h 127.0.0.1 --port 30216 -d t...
摘要:既是數(shù)據(jù)庫(kù),又是內(nèi)存數(shù)據(jù)庫(kù),而且它是現(xiàn)在最強(qiáng)大最流行的數(shù)據(jù)庫(kù)。所以相對(duì)于的真內(nèi)存數(shù)據(jù)庫(kù)而言,只是將大部分的操作數(shù)據(jù)存在內(nèi)存中。 MongoDB既是NoSQL數(shù)據(jù)庫(kù),又是內(nèi)存數(shù)據(jù)庫(kù),而且它是現(xiàn)在最強(qiáng)大、最流行的NoSQL數(shù)據(jù)庫(kù)。區(qū)別與別的NoSQL數(shù)據(jù)庫(kù),MongoDB主要是基于Documents文檔(即一條JSON數(shù)據(jù))的。 MongoDB的特點(diǎn): NoSQL數(shù)據(jù)庫(kù) 內(nèi)存數(shù)據(jù)庫(kù) 存儲(chǔ)...
摘要:是的簡(jiǎn)稱,是一個(gè)文檔對(duì)象的二進(jìn)制編碼格式。有以下三個(gè)特點(diǎn)輕量級(jí)跨平臺(tái)效率高命名空間存儲(chǔ)對(duì)象到這一系列的數(shù)據(jù)庫(kù)名和名被稱為一個(gè)命名空間。 mongodb由C++寫(xiě)就,其名字來(lái)自humongous這個(gè)單詞的中間部分,從名字可見(jiàn)其野心所在就是海量數(shù)據(jù)的處理。關(guān)于它的一個(gè)最簡(jiǎn)潔描述為:scalable, high-performance, open source, schema-free, d...
閱讀 1458·2021-11-24 09:39
閱讀 1775·2021-11-22 15:25
閱讀 3728·2021-11-19 09:40
閱讀 3283·2021-09-22 15:31
閱讀 1288·2021-07-29 13:49
閱讀 1192·2019-08-26 11:59
閱讀 1308·2019-08-26 11:39
閱讀 919·2019-08-26 11:00