標籤:
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學習筆記