展示操作
mongod --dbpath $path
開啟數(shù)據(jù)庫罚舱,--dbpath就是選擇數(shù)據(jù)庫文檔所在的文件夾,也就是mongdb數(shù)據(jù)庫是有真實(shí)存在的文件
mongo
開啟數(shù)據(jù)庫后,另開cmd企锌,輸入mongo操作數(shù)據(jù)庫
db
查看當(dāng)前所在數(shù)據(jù)庫
show dbs
列出所有數(shù)據(jù)庫
show collections
列出當(dāng)前數(shù)據(jù)庫的所有集合
使用操作
use ${數(shù)據(jù)庫名字}
使用某個(gè)數(shù)據(jù)庫(如果不存在則創(chuàng)建某個(gè)數(shù)據(jù)庫)(要實(shí)際操作數(shù)據(jù)庫之后數(shù)據(jù)庫才能真正被創(chuàng)建 )
db.student.insert({...})
沒有創(chuàng)建集合的概念角寸,只要往集合中insert一條數(shù)據(jù),集合就會被創(chuàng)建
示例中死相,student就是一個(gè)集合钞翔,集合中存儲著多個(gè)文檔
修改操作
db.foo.update({'name':'小明'},{$set:{'age':32}})
將name為小明的數(shù)據(jù)的age字段改為32(默認(rèn)只能更改一條)
db.foo.update({'name':'小明'},{$set:{'age':32},{multi:true}})
將所有name為小明的數(shù)據(jù)的age字段改為32(所有匹配均修改)
db.foo.update({'name':'小明'},{'name':'小白'})
完全替換文檔
刪除操作
db.dropDatabase()
刪除當(dāng)前數(shù)據(jù)庫
db.foo.drop()
刪除集合foo
刪除所有a字段為1的文檔(默認(rèn)刪除所有匹配項(xiàng))
db.foo.remove({})
刪除所有文檔
導(dǎo)入操作
mongoimport --db test --collection restaurant --drop --file primer-dataset.json
--db test --collection restaurant //選擇導(dǎo)入數(shù)據(jù)庫為test宫盔,集合為restaurant
--drop //把集合清空
--file primer-dataset.json //導(dǎo)入數(shù)據(jù)為primer-dataset
一般在外部寫好數(shù)據(jù),再在外部導(dǎo)入文件json中璧榄,最外部每一個(gè){}都會被當(dāng)做一個(gè)文檔
查詢操作
db.student.find()
查看該集合的所有文檔
精確匹配
db.foo.find({'score.math':884})
查找foo集合中score對象中math為884的文檔(復(fù)合對象的情況)
db.foo.find({'score.math':{$gt:884}})
查詢foo集合中score.math'屬性大于884的所有文檔
(小于為$lt)
邏輯匹配
db.foo.find({'score.math':884,'age':13})
多重條件查詢(與)
db.foo.find({$or:[{'age':12},{'age':14}]})
多重條件查詢(或)
數(shù)據(jù)排序
db.foo.find().sort({'score.math':1})
1為升序,-1為降序
db.foo.find().sort({'score.math':1,'score.chinese':-1})
同上,但當(dāng)math相同時(shí),chinese按降序排