摘要:是一個(gè)非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)形式為鍵值對(duì)水平擴(kuò)展很容易常作為緩存數(shù)據(jù)庫(kù)來(lái)使用的存儲(chǔ)文檔稱之為類似對(duì)象字段值可以包含其他的文檔數(shù)組以及文檔數(shù)組和的概念解析概念的概念解釋說(shuō)明數(shù)據(jù)庫(kù)表集合行文檔列域表關(guān)聯(lián)主鍵手動(dòng)添加自動(dòng)創(chuàng)建一進(jìn)入數(shù)據(jù)庫(kù)的目錄輸入啟動(dòng)
Mongodb
是一個(gè)非關(guān)系型數(shù)據(jù)庫(kù) 存儲(chǔ)形式為鍵值對(duì) 水平擴(kuò)展很容易 常作為緩存數(shù)據(jù)庫(kù)來(lái)使用
Mongodb的存儲(chǔ)文檔稱之為 BSON 類似json對(duì)象 字段值可以包含其他的文檔 、數(shù)組 以及文檔數(shù)組
sql概念 | mongodb的概念 | 解釋/說(shuō)明 |
---|---|---|
database | database | 數(shù)據(jù)庫(kù) |
table | collection | 表/集合 |
row | document | 行/文檔 |
column | field | 列/域 |
table join | 表關(guān)聯(lián) | |
primary key | primary key | 主鍵手動(dòng)添加/自動(dòng)創(chuàng)建 |
mongod.exe --dbpath=D:db(3) 再打開(kāi)一個(gè)終端
cd mongodb的bin目錄
mongo.exe
(4) 開(kāi)放端口讓其他人連接,需要關(guān)閉防火墻mongod.exe --bind_ip 0.0.0.0
(5) 連接帶密碼的mongodbmongo ip:port/database -u username -p password
mongo database --host x.x.x.x --port 31935 -u username -p password
show dbs
use 數(shù)據(jù)庫(kù)名
db.getName()
db.createCollection(集合名)
db.createCollection("user")
db.集合名.insert(文檔)
db.goods.insert({"goodsname":"牛奶"})
show collections
db.collection_name.drop()
如果遇到命名奇怪的集合,如數(shù)字名字的集合無(wú)法刪除,可以使用如下
db.getCollection("123").drop()
注意:
mongodb區(qū)分大小寫
db.old_name.renameCollection("new_name")
三、數(shù)據(jù)的添加 INSERTdb.集合名.insert({文檔})
db.user.insert({"name":"張三","age":18})
列表中存放多條文檔
db.user.insert([{"name":"李四","age":20},{"name":"王五","age":25}])
3.XX 新的插入文檔db.collection.insertOne()
db.user.insertOne({"name":"趙六","age":30})
(2) 插入多條文檔db.collection.insertMany()
db.user.insertMany([{"name":"趙六","age":30},{"name":"王五","age":22}])
插入多條文檔 不管是insert還是insertMany 都需要使用列表
insertMany 如果不適用列表 則報(bào)錯(cuò)
insert 插入多條不適用列表 則插入成功數(shù)據(jù)為第一條文檔
四、update修改主體結(jié)構(gòu)
db.collection.update(
?
?
? {
?
?
? }
)
$set 直接修改
$inc 累加修改
實(shí)例
db.user.update({"name":"張三"},{"age":38})
db.user.update({"name":"李四"},{$set:{"age":30}})
db.user.update({"name":"李四"},{$inc:{"age":30}})
upsert參數(shù)的使用
db.user.update({"name":"張三"},{$set:{"age":30}},true)
{ "_id" : ObjectId("5b0f68068829170dea936f21"), "name" : "張三", "age" : 30 }
db.user.update({"name":"趙六"},{$set:{age:10}},{multi:true})
db.user.update({"name":"趙六"},{$set:{age:18}},true,true)
3.xx以后的修改db.collection.updateOne()
實(shí)例
db.user.updateOne({"age":18},{$set:{age:10}})
db.collection.updateMany()
實(shí)例
db.user.updateMany({"name":"趙六"},{$set:{age:12}})五、remove 刪除
主體結(jié)構(gòu)
db.collection.remove(, 條件 justOne, bool值 默認(rèn)flase 全部刪除 )
實(shí)例
db.user.remove({"name":"趙六"}) WriteResult({ "nRemoved" : 2 })
db.user.remove({"name":"王五"},true) db.user.remove({"name":"王五"},1)
db.user.remove({})3.xx版本以后的刪除
db.collection.deleteOne()
db.user.deleteOne({"name":"李四"}) { "acknowledged" : true, "deletedCount" : 1 }
db.collection.deleteMany()
db.user.deleteMany({"name":"李四"}) { "acknowledged" : true, "deletedCount" : 2 }六、查詢 (1) find查所有
db.collection.find()
(2) 哪些字段顯示與隱藏指定顯示某些字段 字段名:true
db.user.find({},{name:true}) 只顯示name和id db.user.find({},{name:true,age:true}) 顯示name和age和id字段
指定除了某個(gè)字段以外的字段都顯示
db.user.find({},{name:false,age:false})
注意:
自己定義的域 只能設(shè)置顯示 或者不顯示 不能一起設(shè)置
但是系統(tǒng)的id可以 因?yàn)椴还苣憬o其他域設(shè)置true或者false都會(huì)顯示
只有這種可以
db.user.find({},{"_id":false,age:true})(3) findOne 只查詢一條
db.user.findOne({"age":28})(4) count 統(tǒng)計(jì)
db.user.find().count() db.user.find({age:18}).count()(5) pretty 展開(kāi)查看
db.user.find().pretty()(6) 查詢條件符
$gt 大于 db.user.find({age:{$gt:18}}) $gte 大于等于 db.user.find({age:{$gte:18}}) $lt 小于 db.user.find({age:{$lt:28}}) $lte 小于等于 db.user.find({age:{$lte:28}}) {key:val} 等于 db.user.find({age:28}) $ne 不等于 db.user.find({age:{$ne:28}}) /數(shù)據(jù)/ 模糊查詢 db.user.find({name:/張/}) /^數(shù)據(jù)/ 以...作為開(kāi)頭 db.user.find({name:/^張/}) /數(shù)據(jù)$/ 以...作為結(jié)尾 db.user.find({name:/張$/}) $in 在...范圍內(nèi) db.user.find({"age":{$in:[18,20]}}) $nin 不在...范圍內(nèi) db.user.find({"age":{$nin:[18,20]}}) 按照id來(lái)查詢 db.user.find({"_id" : ObjectId("5b0fabcda14d4a753f75edc5")})(7) and查詢
db.user.find({"name":"張三","age":28}) db.user.find({"age":{$gt:18,$lt:28}}) #名字包含李的,并且年齡大于18并且小于28 只顯示name字段 db.user.find({"name":/李/,"age":{$gt:18,$lt:28}},{"_id":false,"name":true})(8) $or查詢
db.collection.find({$or:[條件1,條件2...]})
查詢年齡大于18 或者 小于28
db.user.find({$or:[{age:{$gt:18}},{age:{$lt:28}}]}) db.user.find({$or:[{name:/張/},{name:/三/}]})(9) and 和 or的一起使用
db.user.find({名:值...,$or:[{條件1},{條件2}...]}) select * from user where name like "%三%" and (age=18 or age=28)(10) limit 取值
db.collection.find().limit(num)
db.user.find().limit(2)
注意:
從頭取出 num條
(11) skip 跳過(guò)num條db.collection.find().skip(num)
db.user.find().skip(2)
(12) limit 和 skip的結(jié)合使用db.collection.find().skip(num).limit(num)
db.user.find().skip(2).limit(2)(14) sort 排序
db.collection.find().sort({key:1|-1}) #升序或者降序
db.user.find().sort({age:-1}).limit(1)七、數(shù)據(jù)庫(kù)的刪除
刪除之前最好use一下
db.dropDatabase()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19265.html
摘要:安裝全過(guò)程環(huán)境基本情況我是在電腦下安裝的系統(tǒng)位,這個(gè)也是導(dǎo)致我安裝的時(shí)候出現(xiàn)異常提示,原因可能是的版本是位的,我應(yīng)該再找一個(gè)位的,但事實(shí)上我找不到。 簡(jiǎn)述 之前講了一些關(guān)于MongoDB的知識(shí),出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計(jì)算機(jī)的虛擬機(jī)的centos系統(tǒng)下安裝MongoDB的經(jīng)歷,希望感興趣的你們?cè)诎惭bMongoDB的時(shí)候出現(xiàn)問(wèn)題可以來(lái)看看我是怎么安裝的...
摘要:安裝全過(guò)程環(huán)境基本情況我是在電腦下安裝的系統(tǒng)位,這個(gè)也是導(dǎo)致我安裝的時(shí)候出現(xiàn)異常提示,原因可能是的版本是位的,我應(yīng)該再找一個(gè)位的,但事實(shí)上我找不到。 簡(jiǎn)述 之前講了一些關(guān)于MongoDB的知識(shí),出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計(jì)算機(jī)的虛擬機(jī)的centos系統(tǒng)下安裝MongoDB的經(jīng)歷,希望感興趣的你們?cè)诎惭bMongoDB的時(shí)候出現(xiàn)問(wèn)題可以來(lái)看看我是怎么安裝的...
摘要:安裝全過(guò)程環(huán)境基本情況我是在電腦下安裝的系統(tǒng)位,這個(gè)也是導(dǎo)致我安裝的時(shí)候出現(xiàn)異常提示,原因可能是的版本是位的,我應(yīng)該再找一個(gè)位的,但事實(shí)上我找不到。 簡(jiǎn)述 之前講了一些關(guān)于MongoDB的知識(shí),出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計(jì)算機(jī)的虛擬機(jī)的centos系統(tǒng)下安裝MongoDB的經(jīng)歷,希望感興趣的你們?cè)诎惭bMongoDB的時(shí)候出現(xiàn)問(wèn)題可以來(lái)看看我是怎么安裝的...
閱讀 3128·2021-11-22 13:54
閱讀 863·2021-11-04 16:08
閱讀 4683·2021-10-11 11:09
閱讀 3636·2021-09-22 16:05
閱讀 997·2019-08-30 15:54
閱讀 422·2019-08-30 15:44
閱讀 627·2019-08-30 14:05
閱讀 1045·2019-08-30 12:46