我的MongoDB-基礎筆記

來源:互聯網
上載者:User

標籤:MongoDB   基礎知識總結   

mongoDB 知識點小結


1.ObjectId  12位 4時間戳記+3機器識別嗎+2進程id+3個隨機數

  getTimestamp()

  str()


2.Map Reduce 將大批量的工作分解執行,然後將結果合并成最終的結果。


3.MongoDB全文檢索索引


建立索引:db.posts.ensureIndex({post_text:"text"})

使用全文檢索索引:db.posts.find({$text:{$search:"runoob"}})

刪除全文索引:

db.posts.getIndexes()

db.posts.dropIndex("post_text_text")


4.可以使用正則

使用正則查詢的三種方式:

db.posts.find({post_text:{$regex:"runoob"}})

db.posts.find({post_text:/runoob/})

title:eval("/"+title+"/i")    // 等同於 title:{$regex:title,$Option:"$i"}  


5.固定大小的集合

特點:1>插入速度極快  2>按照插入順序的查詢輸出極快  3>能在插入最新資料時,淘汰最早的資料

用法:1>儲存日誌資訊  2>緩衝少量文檔

建立:db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000}) 大小固定 文檔個數固定

判斷:db.cappedLogCollection.isCapped()

轉換:db.runCommand({"convertToCapped":"posts",size:10000})

查詢:db.cappedLogCollection.find().sort({$natural:-1})


6.自增

MongoDB沒有實現,可以變成實現這個功能

該函數實現了key的自增

function getNextSequenceValue(sequenceName){

   var sequenceDocument = db.counters.findAndModify(

      {

         query:{_id: sequenceName },

         update: {$inc:{sequence_value:1}},

         "new":true

      });

   return sequenceDocument.sequence_value;

}


7.GridFS

儲存超出16M的檔案

files 檔案的資訊描述

chunk 檔案的拆分體 256k/個



8.MongoDb關係 1:1 1:N N:1 N:N

1對多:引入式關係  嵌入式關係


9.資料庫的引用

{

$ref:集合名稱

$id:引用的id

$db:資料庫名稱,選擇性參數

}

使用:

>var user = db.users.findOne({"name":"Tom Benzamin"})

>var dbRef = user.address

>db[dbRef.$ref].findOne({"_id":(dbRef.$id)})



10.覆蓋索引的使用

db.users.ensureIndex({gender:1,user_name:1})

db.users.find({gender:"M"},{user_name:1,_id:0})  正確

db.users.find({gender:"M"},{user_name:1})。      錯誤



11.查詢分析

hint()和explain()



12.MongoDB原子操作

不支援事物,但支援一些原子的操作

。。。例如:$set $unset $inc $push $pushAll $pull $addToSet $rename $bit



13.MonogoDB索引的使用

建立索引:db.users.ensureIndex({"tags":1})

使用索引:db.users.find({tags:"cricket"})

驗證使用:db.users.find({tags:"cricket"}).explain()

索引子文檔欄位:

建立索引:db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1})

索引使用:db.users.find({"address.city":"Los Angeles"})   

索引目的:方便讀取,缺點額外的記憶體開銷,2.6增加了對索引欄位值的長度限制。



14.基礎

MongoDB安裝和串連略



建立資料庫:use runoob

查看所有資料庫:show dbs

插入資料:db.runoob.insert({"name":"菜鳥教程"})

刪除當前資料庫:db.dropDatabase()



刪除集合:db.collection.drop()

建立集合:db.creteCollection(name,{ capped : true, autoIndexId : true, size : 6142800, max : 10000 })

capped:是否固定

autoIndexId:是否以_id建立索引

size:集合最大值

max:集合中包含文檔最大數量



插入文檔:db.col.insert(document)

更新文檔:

db.collection.update(

   <query>,

   <update>,

   {

     upsert: <boolean>,

     multi: <boolean>,

     writeConcern: <document>

   }

)

刪除文檔:

db.collection.remove(

   <query>,

   <justOne>

)

查詢文檔:db.col.find().pretty()


操作符介紹:

條件操作符:><>=<=...

$type:資料類型和數字對應

limit和skip  $gt最佳化

sort()

aggregate彙總操作...



管道:當前命令的輸出結果作為下一個命令的參數


MongoDB複製:副本會接管主節點成為主節點,不會出現宕機的情況

分區。。。。


MongoDB Java和Node.js中的使用。。。。










我的MongoDB-基礎筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.