關(guān)于MongoDB的背景和優(yōu)點就不說了。mongo屬于非關(guān)系型數(shù)據(jù)庫,即NoSQL毡证,可以簡單理解為用鍵值對存儲,當然特性有很多蔫仙,對于初學者,理解這點和SQL的存儲方式不同就行丐箩。
使用步驟
下載略過(本文是5.x版本)摇邦,在盤根目錄下新建data/db文件夾,作為存儲空間屎勘。
進入解壓后的bin文件夾施籍,執(zhí)行命令mongod --logpath "xxx" --dbpath "xxx" --install
第一次啟動,要指定日志路徑概漱、存儲路徑等丑慎,關(guān)鍵的就這兩個。
后面就不用加參數(shù)了,直接mongod即可啟動服務(wù)竿裂。
啟動成功后在服務(wù)中可以看到(windows)
進入MongoDB shell
這個shell還是用js寫的玉吁,可以定義變量。
還是bin目錄腻异,mongo
即可進入
基本使用
建庫 use xxx
查看當前庫名 db
查看所有庫名 show dbs
刪除當前庫 db.dropDatabase()
刪除集合 db.collection.drop()
不需要新建表(MongoDB中叫做集合)
插入的數(shù)據(jù)叫做文檔
插入數(shù)據(jù) db.collection.insert(doc)
save也是插入进副,但略有不同,如果指定了_id悔常,save類似于set xxx where id=_id影斑,不指定兩者是一樣的
mongo命令行中可以定義變量 doc=(content)
更新數(shù)據(jù)
save是一種,更多是使用update
db.collection.update( criteria, objNew, upsert?, multi? )
criteria : update的查詢條件机打,類似sql update查詢內(nèi)where后面的矫户。
objNew : update的對象和一些更新的操作符(如inc...)等,也可以理解為sql update查詢內(nèi)set后面的
upsert : 這個參數(shù)的意思是残邀,如果不存在update的記錄皆辽,是否插入objNew,true為插入,默認是false罐旗,不插入膳汪。
multi : mongodb默認是false,只更新找到的第一條記錄,如果這個參數(shù)為true,就把按條件查出來多條記錄全部更新九秀。
刪除數(shù)據(jù)
db.collection.remove( <query>, <justOne> )
2.6版本后使用
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
query :(可選)刪除的文檔的條件遗嗽。
justOne : (可選)如果設(shè)為 true 或 1,則只刪除一個文檔鼓蜒。
writeConcern :(可選)拋出異常的級別痹换。
測試了一下,5.0.5版本都弹,兩個都能用
刪除所有 db.col.remove({}) 類似truncate
查看集合內(nèi)容 db.collection.find()
美化內(nèi)容 find().pretty()
findOne() 只返回符合條件的第一個文檔
簡單的條件設(shè)置
小于 $lt
大于 $gt
小等于 $lte
大等于 $gte
不等于 $ne
用法{ key: { $lt: value } }
娇豫,key < value
and在對象里面加鍵值對即可
or
db.col.find( { $or: [ {key1: value1}, {key2:value2} ] } )
or條件在數(shù)組里寫