MongoDB基礎使用教程
基本命令使用
//mongo 預設連接埠27017//預設儲存使用路徑/data/db //需自己手動建立,且賦予讀寫權限//啟動mongodb服務端mongod --config /usr/local/etc/mongod.conf//連結mongo 命令mongo //查看所有資料show dbs//當前使用的資料庫db
建立資料庫
use DATABASE_NAME//不存在就建立,否則切換到該資料庫
刪除資料庫
db.dropDatabase() //即刪除當前使用的資料庫
刪除集合
//刪除集合db.collection_name.drop() //collection_name 為你所要刪除的集合名稱
更新文檔
MongoDB 使用 update() 和 save() 方法來更新集合中的文檔。
update() 方法用於更新已存在的文檔
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> })
* query : update的查詢條件
* update : update的對象和一些更新的操作符(如 , ,inc…
* upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
* multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
* writeConcern :可選,拋出異常的層級。
例:將student name為LouKit更新為Allen db.student.update({'name':'LouKit'},{$set:{'name':'Allen'}})
save() 方法通過傳入的文檔來替換已有文檔
db.collection.save( <document>, { writeConcern: <document> })
* document : 文檔資料。
* writeConcern :可選,拋出異常的層級。
//修改_id為58eb301cfabd4826d05ecd1d文檔資料,沒有寫的欄位將消失 db.student.save({ "_id" : ObjectId("58eb301cfabd4826d05ecd1d"), "name" : "LK", "id" : "100", "date" : "2017-08-01" })
刪除文檔
MongoDB 中採用 remove()函數來移除集合中的資料
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> })
* query :(可選)刪除的文檔的條件。
* justOne : (可選)如果設為 true 或 1,則只刪除一個文檔,預設false。
* writeConcern :(可選)拋出異常的層級。
//只刪除一個 db.student.remove({'name':'Harley'},{justOne:true});
查詢文檔
MongoDB 查詢資料的文法格式如下
db.COLLECTION_NAME.find()
//find() 方法以非結構化的方式來顯示所有文檔,可讀性不是很好,可以使用 pretty() 方法:
db.COLLECTION_NAME.find().pretty()
條件查詢
AND 條件
MongoDB 的 find() 方法可以傳入多個鍵(key),每個鍵(key)以逗號隔開,進行條件查詢
db.col.find({key1:value1, key2:value2}).pretty()//查詢name為LK且id為4的資料db.student.find({'name':'LK','id':'4'})
OR 條件
MongoDB OR 條件陳述式使用了關鍵字 $or,文法格式如下:
db.col.find( { $or: [ {key1: value1}, {key2:value2} ] }).pretty()//查詢name為LK或id為4的資料db.student.find({$or:[{'name':'LK'},{'id':'4'}]}).pretty()
MongoDB中查詢操作符號
操作符 |
文法格式 |
例子 |
等於 |
{key : value} |
db.student.find({ “age” : 20 }) |
小於 |
{key:{$lt:value}} |
db.student.find({ “age” : { $lt : 20}}) |
大於 |
{key:{$gt:value}} |
db.student.find({ “age” : { $gt : 20}}) |
小於或等於 |
{key:{$lte:value}} |
db.student.find({ “age” : { $lte : 20}}) |
大於或等於 |
{key:{$gte:value}} |
db.student.find({ “age” : { $gte : 20}}) |
不等於 |
{key:{$ne:value}} |
db.student.find({ “age” : { $ne : 20}}) |
Limit() 與 Skip()
Limit:指定MongoDB讀取數量的資料記錄,該方法接受一個數字參數
db.COLLECTION_NAME.find().limit(NUMBER)
Skip: 跳過指定數量的資料,該方法接受一個數字參數作為跳過的記錄條數
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
排序 sort()
sort()方法通過參數指定排序的欄位,並使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用於降序排列
db.COLLECTION_NAME.find().sort({KEY:1})