mongodb學習筆記

來源:互聯網
上載者:User

標籤:

Mongodb學習

安裝級配置windows隨機啟動

  1.下載mongodb,並解壓到D:\database\mongodb\mongo

  2.配置環境變數

     1.建立環境變數MONGO_HOME=D:\database\mongodb\mongo\bin

     2.加入path變數%MONGO_HOME%;

  3.設定資料庫安裝和記錄檔夾

     1.在D:\database\mongodb檔案夾下添加logs和data檔案夾

     2.在logs檔案夾下添加mongodb.log檔案

  4.配置windows開機啟動

     在命令列中輸入mongod --dbpath D:\database\mongodb\data --logpath=D:\database\mongodb\logs\mongodb.log --install

  5.測試是否安裝成功

     在命令列中輸入mongo如何出現下面的提示表示安裝成功

基本操作

  添加操作 db.person.insert({"name":"tom","age":20})

  尋找操作

     尋找全部  db.person.find()

     條件查詢  db.person.find({"name":"tom"})

         >,>=,<,<=,!=,=分別對應"$gt", "$gte", "$lt", "$lte", "$ne", "沒有特殊關鍵字"

             >:db.person.find({"age",{$gt:20}})

               <:db.person.find({"age",{$lt:20}})

               =:db.person.find({"age",20})

         and,or,in,notIn分別對應"無關鍵字“, "$or", "$in","$nin"

              and:db.person.find({"name":"tom","age":20})

              or: db.person.find({$or:[{"name":"tom"},{"name":"zhangsan"}]})

              in: db.person.find({"name":{$in:["zhangsan","tom"]}})

              notIn: db.person.find({"name",{$nin:["zhangsan","tom"]}})

     Regex  db.person.find({"name":/^j/,"name":/e$/})

     $where   db.person.find({$where:function(){return this.name=="tom"}})

     查詢person集合中的記錄數   db.person.count()

  修改操作

     整體修改 db.person.update({"name","tom"},{"name":"tom1","age":30})

     局部修改  

         $inc增加increase的縮寫  db.person.update({"name","tom"},{$inc:{"age":20}})  //修改後tom.age=40

         $set設定  db.person.update({"name":"tom"},{$set:{"age":20}})   //修改後tom.age=20

inserUpdate模式

    如果根據第一個查詢條件找不到相應資料就插入一條新資料 

db.person.update({"name":"tom1"},{$set:{"age":40}},true)

批量修改

    mongodb預設如果根據一個查詢條件找到要修改的資料不止一條,會預設只修改一條,可以設定第四個參數為true進行批量修改

刪除操作  db.person.remove({"name":"tom1"})

彙總操作

count 總記錄數  db.person.count()

條件中記錄數  db.person.count({"age":{$gt:30}})

distinct 不帶條件的去重  db.person.distinct("name")

帶條件的去重  db.person.distinct("name",{"age":{$gt:30}})

group  基本分組

db.person.group({"key":{"name":true},"initial":{"person":[]},"reduce":function(doc,out){out.person.push(doc.name+":"+doc.age)}})

 

顯示每個分組中的個數

db.person.group({"key":{"age":true},"initial":{"person":[]},"reduce":function(doc,out){out.person.push(doc.name+":"+doc.age)},"finalize":function(out){out.count=out.person.length}})

 

帶有條件的分組

db.person.group({"key":{"age":true},"initial":{"person":[]},"reduce":function(doc,out){out.person.push(doc.name+":"+doc.age)},"finalize":function(out){out.count=out.person.length},"condition":{"age":{$gt:30}}})

 

mapReduce

第一步:建立映射函數

var map=function(){    emit(this.age,{count:1}) }     //分組參數

第二步:建立簡化函數

var reduce=function(key,value){    var result={count:0};    for(var i=0;i<value.length;i++){ result.count+=value[i].count;    }    return result; }

第三步:執行的函數

db.person.mapReduce(map,reduce,{"out":"collection"})

 

索引操作

建立索引

db.person.ensureIndex({"name":1})    //給name欄位添加索引  1代表升序排列,-1代表降序排列    預設建立的索引都不是唯一索引

建立唯一索引

db.person.ensureIndex({"name":1},{"unique":true})

建立複合式索引

db.person.ensureIndex({"name":1,"age":-1})

擷取集合下的索引索引

db.person.getIndexes()

刪除索引

db.person.dropIndex({"name":1})

 

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.