mongodb是nosql里面最像關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)。單表操作,基本上可以和關(guān)系型數(shù)據(jù)庫(kù)差不多。mongodb比較易學(xué),易用,分幾期記錄一下,學(xué)習(xí)和使用mongodb過(guò)程。
mongodb安裝就不說(shuō)了,請(qǐng)參考:centos yum 安裝 mongodb 以及php擴(kuò)展
一,創(chuàng)建,切換,刪除數(shù)據(jù)庫(kù)
- [root@localhost zhangy]# mongo
- MongoDB shell version: 2.4.6
- connecting to: tank
- > use test //創(chuàng)建 or 切換數(shù)據(jù)庫(kù)
- switched to db test
- > db.dropDatabase() //刪除數(shù)據(jù)庫(kù)
- { "dropped" : "test", "ok" : 1 }
二,php創(chuàng)建,切換,刪除數(shù)據(jù)庫(kù)
1,切換數(shù)據(jù)庫(kù)
- $mongo = new Mongo();
- $db = $mongo->selectDB('test'); //切換數(shù)據(jù)庫(kù)
2,創(chuàng)建數(shù)據(jù)庫(kù)
- $mongo = new Mongo();
- $db = $mongo->selectDB('test');
- $users = $db->createCollection("users");
- $alldb = $mongo->listDBs(); //列出所有數(shù)據(jù)庫(kù)
- print_r($alldb); //可以看到db創(chuàng)建成功了
在這里要注意一下,如果你不創(chuàng)建一個(gè)collection(根關(guān)系型數(shù)據(jù)庫(kù)的表基本上是一樣的),是創(chuàng)建不了數(shù)據(jù)庫(kù)的。
3,刪除數(shù)據(jù)庫(kù)
- $mongo = new Mongo();
- $db = $mongo->selectDB('test');
- $db->drop();
三,小節(jié)
這篇文章很簡(jiǎn)單吧,哈哈,不想在一篇文章里面寫(xiě)太多的東西,折開(kāi)來(lái)寫(xiě),看的更清楚一點(diǎn),更細(xì)一點(diǎn)。
在這兒要提一下,mongodb命令下的幫助,這個(gè)對(duì)于命令行操作很有幫助。
1,db的幫助
- db.AddUser(username,password) 添加用戶
- db.auth(usrename,password) 設(shè)置數(shù)據(jù)庫(kù)連接驗(yàn)證
- db.cloneDataBase(fromhost) 從目標(biāo)服務(wù)器克隆一個(gè)數(shù)據(jù)庫(kù)
- db.commandHelp(name) returns the help for the command
- db.copyDatabase(fromdb,todb,fromhost) 復(fù)制數(shù)據(jù)庫(kù)fromdb---源數(shù)據(jù)庫(kù)名稱,todb---目標(biāo)數(shù)據(jù)庫(kù)名稱,fromhost---源數(shù)據(jù)庫(kù)服務(wù)器地址
- db.createCollection(name,{size:3333,capped:333,max:88888}) 創(chuàng)建一個(gè)數(shù)據(jù)集,相當(dāng)于一個(gè)表
- db.currentOp() 取消當(dāng)前庫(kù)的當(dāng)前操作
- db.dropDataBase() 刪除當(dāng)前數(shù)據(jù)庫(kù)
- db.eval(func,args) run code server-side
- db.getCollection(cname) 取得一個(gè)數(shù)據(jù)集合,同用法:db['cname'] or
- db.getCollenctionNames() 取得所有數(shù)據(jù)集合的名稱列表
- db.getLastError() 返回最后一個(gè)錯(cuò)誤的提示消息
- db.getLastErrorObj() 返回最后一個(gè)錯(cuò)誤的對(duì)象
- db.getMongo() 取得當(dāng)前服務(wù)器的連接對(duì)象get the server
- db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair
- db.getName() 返回當(dāng)操作數(shù)據(jù)庫(kù)的名稱
- db.getPrevError() 返回上一個(gè)錯(cuò)誤對(duì)象
- db.getProfilingLevel() 獲取profile level
- db.getReplicationInfo() 獲得重復(fù)的數(shù)據(jù)
- db.getSisterDB(name) get the db at the same server as this onew
- db.killOp() 停止(殺死)在當(dāng)前庫(kù)的當(dāng)前操作
- db.printCollectionStats() 返回當(dāng)前庫(kù)的數(shù)據(jù)集狀態(tài)
- db.printReplicationInfo() 打印主數(shù)據(jù)庫(kù)的復(fù)制狀態(tài)信息
- db.printSlaveReplicationInfo() 打印從數(shù)據(jù)庫(kù)的復(fù)制狀態(tài)信息
- db.printShardingStatus() 返回當(dāng)前數(shù)據(jù)庫(kù)是否為共享數(shù)據(jù)庫(kù)
- db.removeUser(username) 刪除用戶
- db.repairDatabase() 修復(fù)當(dāng)前數(shù)據(jù)庫(kù)
- db.resetError()
- db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1}
- db.setProfilingLevel(level) 設(shè)置profile level 0=off,1=slow,2=all
- db.shutdownServer() 關(guān)閉當(dāng)前服務(wù)程序
- db.version() 返回當(dāng)前程序的版本信息
2,表的幫助,格式,db.表名.help()
- db.test.find({id:10}) 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)集
- db.test.find({id:10}).count() 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)總數(shù)
- db.test.find({id:10}).limit(2) 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)集從第二條開(kāi)始的數(shù)據(jù)集
- db.test.find({id:10}).skip(8) 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)集從0到第八條的數(shù)據(jù)集
- db.test.find({id:10}).limit(2).skip(8) 返回test數(shù)據(jù)集ID=1=的數(shù)據(jù)集從第二條到第八條的數(shù)據(jù)
- db.test.find({id:10}).sort() 返回test數(shù)據(jù)集ID=10的排序數(shù)據(jù)集
- db.test.findOne([query]) 返回符合條件的一條數(shù)據(jù)
- db.test.getDB() 返回此數(shù)據(jù)集所屬的數(shù)據(jù)庫(kù)名稱
- db.test.getIndexes() 返回些數(shù)據(jù)集的索引信息
- db.test.group({key:...,initial:...,reduce:...[,cond:...]}) 返回分組信息
- db.test.mapReduce(mayFunction,reduceFunction,<optional params>) 這個(gè)有點(diǎn)像存儲(chǔ)過(guò)程
- db.test.remove(query) 在數(shù)據(jù)集中刪除一條數(shù)據(jù)
- db.test.renameCollection(newName) 重命名些數(shù)據(jù)集名稱
- db.test.save(obj) 往數(shù)據(jù)集中插入一條數(shù)據(jù)
- db.test.stats() 返回此數(shù)據(jù)集的狀態(tài)
- db.test.storageSize() 返回此數(shù)據(jù)集的存儲(chǔ)大小
- db.test.totalIndexSize() 返回此數(shù)據(jù)集的索引文件大小
- db.test.totalSize() 返回些數(shù)據(jù)集的總大小
- db.test.update(query,object[,upsert_bool]) 在此數(shù)據(jù)集中更新一條數(shù)據(jù)
- db.test.validate() 驗(yàn)證此數(shù)據(jù)集
- db.test.getShardVersion() 返回?cái)?shù)據(jù)集共享版本號(hào)
新聞熱點(diǎn)
疑難解答
圖片精選