MongoDB簡易

一   安裝正則表達式

1.下載mongodb

$ brew install mongodb數據庫

2.啓動數組

 $ mongod --config /usr/local/etc/mongod.confpost

3.鏈接性能

 $ mongo  rest

二   語法排序

show dbs  查看全部數據庫教程

db.createCollection('col') 建立col集合索引

use DBNAME  建立並切換至某某數據庫

db.dropDatabase()  刪除當前數據庫

db.collection.drop()   刪除集合

show  tables   查看全部集合

db.Collection_Name.insert(document)  插入文檔

db.Collection_Name.find()   查看文檔

db.Collection_Name.update(<query>,<update>,{upsert:false   是否插入不存在的數據,multi:false  只更新查到的第一個數據    writeConcern:拋出異常的級別}

db.collection.save(<document>,{writeConcern:級別}  save() 方法經過傳入的文檔來替換已有的文檔

db.collection.remove(<query>,{justOne:true   只刪除一個文檔}

db.collection.find().pretty()  查詢集合中的數據

db.col.find({"likes":{$lt:50}}).pretty()   小於

db.col.find({"likes":{$lte:50}}).pretty()   小於等於

db.col.find({"likes":{$gt:50}}).pretty()   大於

db.col.find({"like":{$gte:50}}}.pretty()   大於等於

db.col.find({"likes":{$ne:50}}).pretty()   不等於

AND條件  db.col.find({key1:value1,key2:value2}).pretty()

OR條件   db.col.find({$or:[{key1:value1}, {key2:value2}]}).pretty()

AND  OR 組合  db.col.find({"likes":{$gt:50},$or:[{"by":"菜鳥教程"},{"title":"MongoDB 教程"}]}).pretty()

db.col.find({"title":{$type:2}})   $type條件操做符 Double  1; String 2; Object 3;Array 4;Binary data 5; Undefined 6;Object id 7; Boolean 8; Date 9;Null 10; Regular Expression 11; Javascript 13; Symbol 14; Timestamp 17;

db.collection.find().limit(NUMBER)  讀取指定數量的數據記錄

db.col.find({},{"title":1,_id:0}).limit(1).skip(1)  跳過指定的條數,最早執行順序 sort再skip再limit

db.col.find({},{"title":1,_id:0}).sort({"likes":-1})  1正序;-1倒序

索引  ensureIndex()

db.COLLECTION_NAME.ensureIndex({KEY:1},option)  1爲升序建立索引  -1爲降序建立索引    option可選參數{background:false  防止建立索引會阻塞其餘數據庫操做,將其指定爲true;.......}

db.col.ensureIndex({"title":1,"description":-1})  能夠設置多個索引   

db.values.ensureIndex({open:1,close:1},{background:true})

聚合aggregate()方法用於處理數據,並返回計算後的結果

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

db.mycol.aggregate([{$group:{_id:"$by_user",num_tutorial:{$sum:"$likes"}}}])

$sum  計算總和; $avg 計算平均值;$min 獲取集合中全部文檔對應的最小值; $max 最大值; $push 在結果文檔中插入值 到 一個數組中;$addToSet 在結果文檔中插入值到一個數組中,但不建立副本;$first  根據資源文檔的排序獲取第一個文檔數據;$last  最後一個文檔數據;

管道 將在一個管道處理完的結果 傳遞給下一個管道處理;表達式:處理輸入文檔並輸出。表達式是無狀態的,只能用於計算當前聚合管道的文檔:

$project 修改輸入文檔的結構;$match 用於過濾數據;$limit 限制聚合管道返回的文檔數;$skip  跳過指定文檔的數量;$unwind 將文檔中的某一個數組類型字段拆分紅多條,每條包含數組中的一個值。$group:將集合中的文檔分組,可用於統計結果;$sort:排序;$geoNear:輸出接近某一地理位置的有序文檔。

分片:存在的另外一種集羣,能夠知足MongoDB數據量大量增加的需求。

備份:mongodump -h dbhost -d dbname -o dbdirectory

恢復數據:mongorestore -h <hostname><:port> -d  dbname <path>

監控:/bin   $mongostat

                   $mongotop

關係類型:嵌入式關係--保存在單一的文檔中,比較容易獲取和維護數據,但不斷增大會影響讀寫性能。

                  引用式關係--把數據文檔和用戶文檔分開,經過文檔的ID字段來創建關係。{"name":"Tom Benzamin","address_ids":[ObjectId("52ffc4a5d85242602e000000"),ObjectId("52ffc4a5d85242602e000001")]}

使用DBRefs:一個文檔衝多個集合中引用文檔。{$ref:.集合名稱. ,$id: ..引用ID..,$db:.數據庫名稱..}

原子操做:MongoDB提供了許多原子操做,好比文檔的保存、修改、刪除。(原子操做:要麼這個文檔保存到mongoDB,要麼沒有保存到MongoDB,不會出現查詢到的文檔沒有保存完整的狀況)

ObjectID 是一個12字節BSON類型數據,前4個字節表示時間戳,3個字節是機器標識碼,2個是進程ID,最後3個字節是隨機數

newObjectId = ObjectId()

new ObjectId().str

正則表達式post_text

db.posts.find({post_text:{$regex:"runoob"}})  或db.posts.find({post_text:/runoob/}) 或 db.posts.find({post_text:{$regex:"runoob",$options:"$i"}})

相關文章
相關標籤/搜索