1.MongoDB的基本使用
MongoDB具垫,是非關(guān)系型數(shù)據(jù)庫侈离,也叫做文檔數(shù)據(jù)庫,這類數(shù)據(jù)庫沒有表和行的概念筝蚕,有的只有類似含義的集合和文檔卦碾,集合與關(guān)系型數(shù)據(jù)庫中的表有點(diǎn)類似。文檔與關(guān)系型數(shù)據(jù)庫中的行起宽,有點(diǎn)關(guān)聯(lián)洲胖。但是在一個(gè)集合之內(nèi),文檔的數(shù)據(jù)結(jié)構(gòu)有可能是不一樣的坯沪。
2. 服務(wù)器的啟動(dòng)
a)首先第一步绿映,我們需要指定mongod的數(shù)據(jù)目錄,假如說腐晾,我們把數(shù)據(jù)存儲(chǔ)在根目錄下的data/db目錄下:
mkdir -p /data/db;
b)啟動(dòng)服務(wù):mongod --dbpath = /data/db --port=27017
--dbpath=/data/db:指定mongodb的文件目錄
--port:指定服務(wù)監(jiān)聽的端口,如果我們不指定叉弦,就是默認(rèn)的端口
回車后出現(xiàn):waiting for connections on port 27017
表示已經(jīng)在27017這個(gè)端口上監(jiān)聽了,如果要結(jié)束這個(gè)服務(wù)的話藻糖,直接按ctrl+c就可以了淹冰。
c)mongod的啟動(dòng)也可以設(shè)置多個(gè)參數(shù)比如:--fork:
--fork:以守護(hù)進(jìn)程的方式進(jìn)行啟動(dòng).
假如一個(gè)參數(shù)fork,我們使用fork的時(shí)候,必須指定巨柒,我們服務(wù)器存儲(chǔ)日志的位置樱拴。
比如說,我們直接存儲(chǔ)在系統(tǒng)日志里面:
mongod --dbpath=/data/db --port=27017 --fork --syslog
d)除了洋满,把日志輸入到系統(tǒng)目錄呢晶乔,其實(shí)我們還可以指定mongodb日志輸出文件:
mongod --dbpath=/data/db --port=27017 --fork --logpath=/var/log/mongod.log
tip:通過后臺(tái)運(yùn)行的進(jìn)程,我們?nèi)绾谓Y(jié)束這個(gè)進(jìn)程呢:
1) kill 端口號(hào)(以這樣的方式來終止進(jìn)程的運(yùn)行)
2.MongoDB客戶端啟動(dòng):
1)輸入命令:mongo
默認(rèn)的情況下是連接的本機(jī)的默認(rèn)端口的服務(wù)牺勾,
2)手動(dòng)指定:
mongo 主機(jī)名:端口號(hào)
eg:mongod localhost:27017
3. mongodb的語句
1. show dbs;//展示所有的文檔
2. show collections;//展示所有的集合
3. use aa;//創(chuàng)建或選中一個(gè)aa文檔正罢,不是真實(shí)創(chuàng)建的,必須成功插入集合禽最,才能夠真正的創(chuàng)建集合
4. db.aa.insert({"name":"xiaoyu","age":10});//插入一條數(shù)據(jù)
5. db.aa.insertMany([
{name:"hehe","age":20},
{name:"mingming","age":30}
]);
6.db.aa.find():查找所有的集合
7. db.aa.find({"name":"hehe"}),根據(jù)條件查找
8.db.aa.find({"age":{$gt:10}})//大于10
9.db.aa.find({"age":{$lt:20}})//大于10
10.db.aa.find({"age":{$gte:20}})// >=10
11. db.aa.find({"age":{$lte:20}})// <=10
12.db.aa.find({"age":{$ne:20}})// !=10
13. db.find().toArray():將查詢到的數(shù)據(jù)組成一個(gè)數(shù)組對象
14.db.findOne({"_id"}:ObjectId("...")):查詢一條數(shù)據(jù)
15. db.update({
“name”:"hehe"
},
{
$set:{'age':20}
},
{
multi:true
});
允許多行修改
16. db.users.update({name:"xiaoyu"},{$set:{"age":20}},false)
//false是修改腺怯,true是插入
17.db.users.update({name:"xiaoyu"},{$set:{"age":20}},false,true);
允許多行修改
18. 1)刪除所有的
db.users.remove({});
2)//刪除帶條件的
db.users.remove({"name":"xiaoyu"});
3)刪除整個(gè)集合
db.users.drop();
19.統(tǒng)計(jì)查詢紀(jì)錄的條數(shù)
db.users.find().count();