本篇內(nèi)容主要講解“MongoDB數(shù)據(jù)庫的基本操作講解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MongoDB數(shù)據(jù)庫的基本操作講解”吧!
公司主營業(yè)務:成都網(wǎng)站建設、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出新鄉(xiāng)縣免費做網(wǎng)站回饋大家。
MongoDB作為靈活豐富的數(shù)據(jù)庫而深受人們的喜愛和歡迎。本文旨在講解MongoDB,內(nèi)容包括MongoDB的概念、支持的數(shù)據(jù)類型列表、與MySQL對比、基礎操作、增刪改查、修改器等等。希望本教程可以帶大家全面了解MongoDB數(shù)據(jù)庫。
1、MongoDB的概念。
MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。MongoDB 是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。
2、MongoDB支持的數(shù)據(jù)類型列表
String : 這是最常用的數(shù)據(jù)類型來存儲數(shù)據(jù)。在MongoDB中的字符串必須是有效的UTF-8。
Integer : 這種類型是用來存儲一個數(shù)值。整數(shù)可以是32位或64位,這取決于您的服務器。
Boolean : 此類型用于存儲一個布爾值 (true/ false) 。
Double : 這種類型是用來存儲浮點值。
Min/ Max keys : 這種類型被用來對BSON元素的最低和最高值比較。
Arrays : 使用此類型的數(shù)組或列表或多個值存儲到一個鍵。
Timestamp : 時間戳。這可以方便記錄時的文件已被修改或添加。
Object : 此數(shù)據(jù)類型用于嵌入式的文件。
Null : 這種類型是用來存儲一個Null值。
Symbol : 此數(shù)據(jù)類型用于字符串相同,但它通常是保留給特定符號類型的語言使用。
Date : 此數(shù)據(jù)類型用于存儲當前日期或時間的UNIX時間格式??梢灾付ㄗ约旱娜掌诤蜁r間,日期和年,月,日到創(chuàng)建對象。
Object ID : 此數(shù)據(jù)類型用于存儲文檔的ID。
Binary data : 此數(shù)據(jù)類型用于存儲二進制數(shù)據(jù)。
Code : 此數(shù)據(jù)類型用于存儲到文檔中的JavaScript代碼。
Regular expression : 此數(shù)據(jù)類型用于存儲正則表達式
3、MongoDB 與mysql對比
mysql mongodb
db db
tables collections集合
row(行) document文檔
colum(列) field
4、MongoDB數(shù)據(jù)庫數(shù)據(jù)表的基礎操作
本著存在就使用,不存在即創(chuàng)建的原則
use db 使用數(shù)據(jù)庫,
db.dropDatabase() 刪除數(shù)據(jù)庫
show dbs 查看當前多有的數(shù)據(jù)庫
show tables 查看數(shù)據(jù)表(collections)
show collections 一樣的查看當前數(shù)據(jù)表
db.(數(shù)據(jù)表名).drop() 刪除表
db 查看當前使用的是哪一個數(shù)據(jù)庫
5、MongoDB文檔的增刪改查
以下info代表表(collections)
1>增
db.info.insert({'name':'huahua'}) (官方不推薦,既可以插入多條也可以只插入一條數(shù)據(jù))
db.info.insertOne({'name':'huahua'})
db.info.insertMany([{'name':'huahua'}])
2>刪
db.info.remove({條件})
db.info.deleteOne({條件})
db.info.deleteMany({條件})
3>改
db.info.update({條件},{$set:{name:18}})(同樣官方推薦使用下面兩種)
db.info.updateOne({條件},{$set:{name:18}})
db.info.updateMany({條件},{$set:{name:18}})
4>查
db.info.findOne({條件]})
db.info.find({條件})
db.info.find().pretty()格式化顯示結果
6、常用條件
$lt #某個字段小于某個值 db.info.find({'age':{'$lt',20}}) ---->查詢年齡小于20的所有結果
$gt #大于,$gte #等于,$lte#等于,$eq #等于,$ne #不等于,用法與上面一樣
$in ##查詢值在某一個范圍內(nèi) db.info.find({'age';{'$in':[20,30]}}),查詢年齡在20到30這個范圍內(nèi)的結果
$nin ##不在某一個范圍內(nèi)
$regex #正則匹配 db.info.find({'name';{'$regex':'^二*'}}) 查詢名字以二開頭的所有名字
$exists #判斷某個字段是否存在 db.info.find({'name';{'$exists',True}})
$type #類型判斷 db.info.find({"title" : {$type : 2}},#判斷title是否為字符串
詳細類型對應查考如下連接
https://www.runoob.com/mongodb/mongodb-operators-type.html
$text #文本查詢 db.info.find('$text':{'search':'huahua'}),查詢文本類型字段中包含哈哈的文檔
$高級條件查詢 db.info.find({'$where':'obj.age>18'}),查詢年齡大于18的文檔
({條件,條件} 表示兩個或多個條件同時成立
({'$or':[{條件},{條件}]})表示至少一個成立
{'hoppy':{'$all:[0,1,2,3]}}當hoppy的值為[0,1,2,3]的子集時,查詢成功
7、一些修改器
$修改器
$set 設置或者添加值
$unset 刪除某一個字段
db.info.update{{條件},'$unset':{'age':1}}
$inc 引用增加
db.info.update{{條件},'$inc':{'age':1}}
array操作
$push 在array中追加一個新的元素
db.info.updateOne({條件,{'$push':{array:10}}})
$pull 在array中刪除一個元素
db.info.updateOne({},{'$pull':{arry:10}})
$pop 在array中,如果為-1 則從前往后刪,如果為1則從后往前刪
db.info.updateOne({},{'$pop':{arry:1}})
db.info.updateOne({},{'$pop':{arry:-1})
修改里面array內(nèi)值為5的值
db.db.info.updateOne({array:5},{'$set':{'arry.$':1}})#必須給定索引位置,$為查找到的那一個元素
object操作
db.info.updateOne({name:'huahua'},{'$inc':{'map.weight':-1}})
8、其他操作
count()計算表內(nèi)數(shù)據(jù)總數(shù)---db.info.count()
limit() 查詢幾條數(shù)據(jù)---db.info.limit(5)
skip() 跳過幾條數(shù)據(jù)---db.info.skip(5)
sort ()排序 ----db.info..sort({'age':1}) -- (按照年齡從小到大排序(1:代表升序)(-1:代表降序))
limit+sort+skip
db.info.limit(5).skip(5).sort()
優(yōu)先級最高的是sort
其次為 skip
最低是 limit
9、創(chuàng)建索引,加快查詢速度
(1)為什么要創(chuàng)建索引
索引通常能夠極大的提高查詢的效率,如果沒有索引,MongoDB在讀取數(shù)據(jù)時必須掃描集合中的每個文件并選取那些符合查詢條件的記錄。這種掃描全集合的查詢效率是非常低的,特別在處理大量的數(shù)據(jù)時,查詢可以要花費幾十秒甚至幾分鐘,這對網(wǎng)站的性能是非常致命的。索引是特殊的數(shù)據(jù)結構,索引存儲在一個易于遍歷讀取的數(shù)據(jù)集合中,索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結構
(2)創(chuàng)建索引
db.collection.createIndex(keys, options) ##語法中 Key 值為你要創(chuàng)建的索引字段,1 為指定按升序創(chuàng)建索引,如果你想按降序來創(chuàng)建索引指定為 -1 即可
db.info.createIndex({"title":1})
到此,相信大家對“MongoDB數(shù)據(jù)庫的基本操作講解”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
新聞名稱:MongoDB數(shù)據(jù)庫的基本操作講解
標題URL:http://vcdvsql.cn/article38/pepesp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、搜索引擎優(yōu)化、標簽優(yōu)化、移動網(wǎng)站建設、品牌網(wǎng)站設計、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)