1.1 Mongo的鏈接mongodb
Mongo的鏈接可使用代碼鏈接,也可使用shell鏈接.shell
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
shell鏈接時,默認使用mongo url便可鏈接.數據庫
1.2 Mongo的斷開服務器
Mongo的斷開,若是使用shell,直接退出,便可斷開.url
2.1 database,collection的建立與刪除rest
建立databasecode
在shell下,經過show dbs
能夠查看全部的數據庫,使用user xxx
就能切換到數據庫,若是數據庫不存在就會建立.排序
刪除database索引
在當前數據庫下,使用db.Dropdatabase()
來刪除當前數據庫.接口
建立collection
插入數據只能往collection中插入,若是數據庫中沒有對應的collection,插入數據時會自動建立.也可使用db.xxx.createCollection()
來建立指定名字的collection.
刪除collection
在數據庫下,使用db.xxx.drop()
便可刪除指定的collection. xxx便是collection的名字.
2.2 數據的增刪改查
數據的添加
使用db.xxx.insert({"name":"yhp"})
就能夠在指定的xxx collection中插入一條記錄.
數據的刪除
collection中的數據能夠經過使用db.xxx.deleteOne({條件})
來刪除符合條件的一個,或者使用db.xxx.deleteMany({條件})
來刪除多個符合條件的數據;老的接口也可使用db.xxx.remove({條件})
來刪除數據.若是條件爲空,那麼就是刪除collection下的全部數據.
數據的查詢
查看全部數據
使用db.xxx.find()
,便可查看全部數據.
條件查找
db.xxx.find({"age":{$gt:30}})
來查找age大於30的結果,也可使用$lt,$lte
等條件.若是查找在某個區間的,則使用db.find({"age":{$gt:30, $lt:35}})
,則是找出大於30小於35的結果.db.xxx.find({條件},{"name":1})
能夠查詢符合條件的結果中的指定name列.默認包含_id,若是不指望有id列,可使用_id:0
來去掉.db.xxx.find({條件}).sort({"name":-1})
,能夠按照name倒序排序結果,若是爲1,那麼就爲正序排序.db.xxx.find().limit(5)
能夠查看前5條數據;使用db.xxx.find().skip(10)
能夠查看10條之後的數據;而若是想要查看第5條到第10條的數據呢?使用db.xxx.find().limit(10).skip(5)
db.xxx.find({$or:[{"name":25}, {"name":30}]})
來查詢知足其中一條的數據.db.xxx.distinct("name")
能夠查詢去除重複後的的數據.數據的更新
數據的更新使用db.xxx.update({條件},{$set:{"name":"xiaoming"}}, {multi:true})
能夠更新知足條件的數據,其中multi爲true時,表示更新全部符合條件的結果,而若是爲false,則更新僅僅一條數據.
對於新版本,則推薦使用db.xxx.updateOne()
來更新單個結果,而使用db.xxx.updateMany()
能夠更新多個結果.
備份
Mongo的數據複製能夠經過使用mongodump -h 【主機名】:【端口號】 -d 【數據庫名】-o 【備份的存儲路徑】-u 【用戶名】 -p 【密碼】
來備份特定的數據庫,也能夠經過使用mongodump -h 【主機名】:【端口號】 -d 【數據庫名】-c 【集合名稱】-o 【備份的存儲路徑】-u 【用戶名】 -p 【密碼】
來備份特定的集合.
還原
能夠把備份的數據從新還原到數據庫中,可使用mongorestore -h 【主機名】:【端口號】-d 【還原成爲的數據庫名】-u 【用戶名】 -p 【密碼】 –dir 【備份目錄】
來把備份中的內容還原到數據庫中;也能夠經過mongorestore -h 【主機名】:【端口號】-d 【還原成爲的數據庫名】-u 【用戶名】 -p 【密碼】 –dir 【備份目錄的bson文件】
來把備分內容還原到指定的collection中.
索引
db.COLLECTION_NAME.ensureIndex(keys[,options])
能夠建立索引,db.COLLECTION_NAME.reIndex()
重建索引db.COLLECTION_NAME.getIndexes()
查看索引db.COLLECTION_NAME.dropIndex("INDEX-NAME")
能夠刪除指定的索引;也可使用db.COLLECTION_NAME.dropIndexes()
刪除全部索引.集合中索引不能超過64個
引用式關係
MongoDB 中的關係能夠是:
假如一個用戶信息中有地址字段,可是地址信息也是一個複雜的結構,那麼就須要把地址信息嵌入到用戶信息中,或者把地址信息的"位置"存放到用戶信息中,查找的時候,先要查找到"位置"信息,而後去取其中的地址.