在NOSQL的多個數據庫版本中,mongodb相對比較成熟,把學mongodb筆記整理在這,方便以後回顧。
這筆記預計分三部分: 一,基礎操作,二、增刪改查詳細操作,三、高級應用。
一、在linux在安裝mongodb,
在linux下安裝mongodb其實很簡單,到官網上下載mongodb-linux-x86_64-v2.4-latest.tgz 文件,直接解壓就可以使用了,爲了方便,把解壓後的文件放在 /usr/local/mongodb 下,在bin文件下就是我們需要的二進制命令文件。
bsondump mongodump mongoimport mongorestore mongostat
mongo mongoexport mongooplog mongos mongotop
mongod mongofiles mongoperf mongosniff
二、mongodb啓動與關閉
與mysql一樣,mongodb也需要啓動後臺進程
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/dblogs --fork
--dbpath執行數據庫存放路徑(默認是/data/db)
--fork是以Daemon(進程)方式運行,
mongodb 默認開啓的端口號是27017.
跟其他程序一樣,關閉mongodb 可以使用 killall mongod 或是 pkill mongod ,但是,最好不好使用kill -9 pid 的形式,因爲這樣會使mongodb受到損壞,並且下次啓動mongodb的時候會出現問題,mongodb 會在data 文件夾下產生一個mongod.lock 的鎖文件。 如果你真的使用kill -9 + pid 的形式關閉mongodb ,下次啓動前必須先到data 文件夾下刪除那個鎖文件。
三、mongodb 的簡單操作
(1)進入mongodb命令:
[root@local ~]# /usr/local/mongodb/bin/mongo
MongoDB shell version: 2.4.4-pre-
connecting to: test
>
(2)退出命令: exit
(3)查看當前數據庫: db
(4)查看錶(mongodb中稱爲collections) show tables 或 show collections
(5)進入admin 數據庫: use admin
(6)查看所有用戶: show users;
(7) 查看數據庫: show dbs;
(8) 幫助命令: help (可以使用這命令,查看所有命令的詳細使用方法)
(9) 增:db.collname.insert({name:"user1"});裏面的key:value 以json格式
(10)刪:db.collname.remove()如果括號裏沒有條件,則刪除collection裏所有數據
db.collname.remove({"name":"caida"})
(11)改:db.collname.update({"_id":1},{"name":"nosql"})
(12)查:db.collname.find() 如果括號沒有條件,則查找collection裏所有數據
db.collname.find({"name":"caida"})
(13)保存:db.collname.save(),如果值改變則更新,否則不變。
(14)新建數據庫(如創建一個user數據庫)
> use user;
switched to db user
> db.createCollection("user");
mongodb的數據庫是隱式創建的,並沒有一個命令去創建個數據庫。
幾個注意事項:
mongodb在插入數據的時候,如果你沒有指定_id,這它會自動個你創建個_id,是根據:時間戳|機器| PID | 計數器 來產生的,所以即使跟其他mongodb數據庫,它的值也是唯一的。
mongodb的數據結構 database--collection--document
mongodb的數據是以json格式,並且可以循環嵌套,爲了系統的高效性,最後不要多層嵌套。
在創建數據庫的時候,支持js的語法,可以循環插入多條數據。
32位的版本最多隻能存儲2.5GB的數據。
如果你的MongoDB實例崩潰了(或者由於OOM掛掉了,或者整個系統都崩潰了),那麼誰也無法保證你的數據會怎麼樣。最好的辦法是建立一個replication,
在默認情況下,MongoDB不會進行身份驗證,並且,它會監聽所有的網絡接口。