摘要:是一個非關系型數據庫存儲形式為鍵值對水平擴展很容易常作為緩存數據庫來使用的存儲文檔稱之為類似對象字段值可以包含其他的文檔數組以及文檔數組和的概念解析概念的概念解釋說明數據庫表集合行文檔列域表關聯主鍵手動添加自動創建一進入數據庫的目錄輸入啟動
Mongodb
是一個非關系型數據庫 存儲形式為鍵值對 水平擴展很容易 常作為緩存數據庫來使用
Mongodb的存儲文檔稱之為 BSON 類似json對象 字段值可以包含其他的文檔 、數組 以及文檔數組
sql概念 | mongodb的概念 | 解釋/說明 |
---|---|---|
database | database | 數據庫 |
table | collection | 表/集合 |
row | document | 行/文檔 |
column | field | 列/域 |
table join | 表關聯 | |
primary key | primary key | 主鍵手動添加/自動創建 |
mongod.exe --dbpath=D:db(3) 再打開一個終端
cd mongodb的bin目錄
mongo.exe
(4) 開放端口讓其他人連接,需要關閉防火墻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 數據庫名
db.getName()
db.createCollection(集合名)
db.createCollection("user")
db.集合名.insert(文檔)
db.goods.insert({"goodsname":"牛奶"})
show collections
db.collection_name.drop()
如果遇到命名奇怪的集合,如數字名字的集合無法刪除,可以使用如下
db.getCollection("123").drop()
注意:
mongodb區分大小寫
db.old_name.renameCollection("new_name")
三、數據的添加 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 如果不適用列表 則報錯
insert 插入多條不適用列表 則插入成功數據為第一條文檔
四、update修改主體結構
db.collection.update(
?
?
? {
?
?
? }
)
$set 直接修改
$inc 累加修改
實例
db.user.update({"name":"張三"},{"age":38})
db.user.update({"name":"李四"},{$set:{"age":30}})
db.user.update({"name":"李四"},{$inc:{"age":30}})
upsert參數的使用
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()
實例
db.user.updateOne({"age":18},{$set:{age:10}})
db.collection.updateMany()
實例
db.user.updateMany({"name":"趙六"},{$set:{age:12}})五、remove 刪除
主體結構
db.collection.remove(, 條件 justOne, bool值 默認flase 全部刪除 )
實例
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字段
指定除了某個字段以外的字段都顯示
db.user.find({},{name:false,age:false})
注意:
自己定義的域 只能設置顯示 或者不顯示 不能一起設置
但是系統的id可以 因為不管你給其他域設置true或者false都會顯示
只有這種可以
db.user.find({},{"_id":false,age:true})(3) findOne 只查詢一條
db.user.findOne({"age":28})(4) count 統計
db.user.find().count() db.user.find({age:18}).count()(5) pretty 展開查看
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}}) /數據/ 模糊查詢 db.user.find({name:/張/}) /^數據/ 以...作為開頭 db.user.find({name:/^張/}) /數據$/ 以...作為結尾 db.user.find({name:/張$/}) $in 在...范圍內 db.user.find({"age":{$in:[18,20]}}) $nin 不在...范圍內 db.user.find({"age":{$nin:[18,20]}}) 按照id來查詢 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 跳過num條db.collection.find().skip(num)
db.user.find().skip(2)
(12) limit 和 skip的結合使用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)七、數據庫的刪除
刪除之前最好use一下
db.dropDatabase()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19265.html
摘要:安裝全過程環境基本情況我是在電腦下安裝的系統位,這個也是導致我安裝的時候出現異常提示,原因可能是的版本是位的,我應該再找一個位的,但事實上我找不到。 簡述 之前講了一些關于MongoDB的知識,出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計算機的虛擬機的centos系統下安裝MongoDB的經歷,希望感興趣的你們在安裝MongoDB的時候出現問題可以來看看我是怎么安裝的...
摘要:安裝全過程環境基本情況我是在電腦下安裝的系統位,這個也是導致我安裝的時候出現異常提示,原因可能是的版本是位的,我應該再找一個位的,但事實上我找不到。 簡述 之前講了一些關于MongoDB的知識,出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計算機的虛擬機的centos系統下安裝MongoDB的經歷,希望感興趣的你們在安裝MongoDB的時候出現問題可以來看看我是怎么安裝的...
摘要:安裝全過程環境基本情況我是在電腦下安裝的系統位,這個也是導致我安裝的時候出現異常提示,原因可能是的版本是位的,我應該再找一個位的,但事實上我找不到。 簡述 之前講了一些關于MongoDB的知識,出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計算機的虛擬機的centos系統下安裝MongoDB的經歷,希望感興趣的你們在安裝MongoDB的時候出現問題可以來看看我是怎么安裝的...
閱讀 3070·2021-11-22 13:54
閱讀 834·2021-11-04 16:08
閱讀 4461·2021-10-11 11:09
閱讀 3597·2021-09-22 16:05
閱讀 910·2019-08-30 15:54
閱讀 387·2019-08-30 15:44
閱讀 594·2019-08-30 14:05
閱讀 1014·2019-08-30 12:46