標籤:tab mysq mongodb mysql 大於 通過 啟動 display htm
安裝
MongoDB
https://www.mongodb.com/download-center#community
點擊msi安裝程式進行安裝,可以進行自訂安裝,選擇安裝位置,我選擇的是D盤
在D盤根目錄下建立data\db目錄,用來存放資料;建立data\dbConf\mongodb.log檔案存放MongoDB的日誌
雙擊運行MongoDB伺服器
將MongoDB伺服器作為Windows服務運行
執行以下命令將MongoDB伺服器作為Windows服務運行:
mongod.exe --bind_ip 127.0.0.1 --logpath "D:\data\dbConf\mongodb.log" --logappend --dbpath "D:\data\db" --port 27017 --serviceName "MyServiceName" --serviceDisplayName "MyServiceName" --install
下表為mongodb啟動的參數說明:
參數 |
描述 |
--bind_ip |
綁定服務IP,若綁定127.0.0.1,則只能本機訪問,不指定預設本地所有IP |
--logpath |
定MongoDB記錄檔,注意是指定檔案不是目錄 |
--logappend |
使用追加的方式寫日誌 |
--dbpath |
指定資料庫路徑 |
--port |
指定服務連接埠號碼,預設連接埠27017 |
--serviceName |
指定服務名稱 |
--serviceDisplayName |
指定服務名稱,有多個mongodb服務時執行。 |
--install |
指定作為一個Windows服務安裝。 |
MongDB圖形化工具的安裝(Robomong
)
http://www.softpedia.com/get/Internet/Servers/Database-Utils/Robomongo.shtml#download
點擊下一步進行安裝
MongDB的簡單實用使用
雙擊mongo.exe
1.建立資料庫
use DataBase_Name
如果資料庫不存在,則建立資料庫,否則切換到指定的資料庫
2.查看資料庫
show dbs
3.插入資料文檔(有該集合則直接插入,沒有該集合,則自動建立)
db.集合的名字.insert({
name:‘張三‘,
age:27
}
)
Eg:
4.更新文檔
db.集合名稱.update(
{‘name‘:‘張三‘},{$set:{‘name‘:‘lisi‘}}
)
5.查詢
db.集合的名字.find()
6.刪除
刪除名為張三的集合
db.col.remove({‘name‘:‘張三‘})
刪除第一條找到的記錄
db.集合的名字.remove(DELETION_CRITERIA,1)
刪除所有資料
db.集合的名字.remove({})
6.條件查詢
db.集合的名字.find({likes:{$gte:100}})
類似
select * from col where likes>=100
小於---$lt
小於等於----$lte
明確的範圍查詢大於100小於200
db.集合的名字.find({likes:{$lt:100 ,$gt:100}})
7.limit查詢
db.COLLECTION_NAME.find().limit(NUMBER)
db.集合名稱.find({},{"title":1,_id:0}).limit(2)
8.排序(1升序-1降序)
db.集合名字.find().sort({KEY:1})
MongoDB文法與現有關係型資料庫SQL文法比較
MongoDB文法 MySql文法
db.test.find({‘name‘:‘foobar‘})<==> select * from test where name=‘foobar‘
db.test.find() <==> select *from test
db.test.find({‘ID‘:10}).count()<==> select count(*) from test where ID=10
db.test.find().skip(10).limit(20)<==> select * from test limit 10,20
db.test.find({‘ID‘:{$in:[25,35,45]}})<==> select * from test where ID in (25,35,45)
db.test.find().sort({‘ID‘:-1}) <==> select * from test order by IDdesc
db.test.distinct(‘name‘,{‘ID‘:{$lt:20}}) <==> select distinct(name) from testwhere ID<20
db.test.group({key:{‘name‘:true},cond:{‘name‘:‘foo‘},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}}) <==> select name,sum(marks) from testgroup by name
db.test.find(‘this.ID<20‘,{name:1}) <==> select name from test whereID<20
db.test.insert({‘name‘:‘foobar‘,‘age‘:25})<==>insertinto test (‘name‘,‘age‘) values(‘foobar‘,25)
db.test.remove({}) <==> delete * from test
db.test.remove({‘age‘:20}) <==> delete test where age=20
db.test.remove({‘age‘:{$lt:20}}) <==> elete test where age<20
db.test.remove({‘age‘:{$lte:20}}) <==> delete test where age<=20
db.test.remove({‘age‘:{$gt:20}}) <==> delete test where age>20
db.test.remove({‘age‘:{$gte:20}})<==> delete test where age>=20
db.test.remove({‘age‘:{$ne:20}}) <==> delete test where age!=20
db.test.update({‘name‘:‘foobar‘},{$set:{‘age‘:36}})<==> update test set age=36 where name=‘foobar‘
db.test.update({‘name‘:‘foobar‘},{$inc:{‘age‘:3}})<==> update test set age=age+3 where name=‘foobar‘
模糊查詢:$regex
db.test.find({"name":{$regex:"aaa"}})
MongoDB索引相關
查看索引:
db.getCollection(‘id_mapper‘).getIndexes()
建立索引:1表示按升序建立索引,-1表示按降序建立索引
db.getCollection(‘id_mapper‘).ensureIndex({"contract_id":1},{background: true})
註:如果在為已有資料的文檔建立索引時,可以讓background值為true,以使MongoDB在後台建立索引,這樣的建立時就不會阻塞其他動作。但是相比而言,以阻塞方式建立索引,會使整個建立過程效率更高,但是在建立時MongoDB將無法接收其他的操作。
預設索引名稱為:contract_id_1
建立複合唯一索引:
db.getCollection(‘id_mapper‘).ensureIndex({"apply_id":1,"insti_code":1},{"background":true},{"unique":true})
刪除索引:刪除前,一定要看好索引名稱是什麼
db.getCollection(‘id_mapper‘).dropIndex("contract_id_1")
db.getCollection(‘id_mapper‘).dropIndexes() 刪除所有索引
雙欄位查詢:
db.getCollection(‘id_mapper‘).find({"contract_id":"767862ce-0ca9-4673-92e5-c505d7d3686c"},{"insti_code":"1"})
有一個欄位有索引就行了
建立索引後,通過程式新添加的Document會自動添加索引,已經驗證過
Windows使用MongoDB,以及索引建立