一些mongodb學習的相關知識,記錄下來以便下次查看使用 參考:https://docs.mongodb.com/manual/reference/operator/ http://www.runoob.com/mongodb/mongodb-tutorial.html https://code. ...
一些mongodb學習的相關知識,記錄下來以便下次查看使用
參考:https://docs.mongodb.com/manual/reference/operator/
http://www.runoob.com/mongodb/mongodb-tutorial.html
https://code.ziqiangxuetang.com/mongodb/mongodb-tutorial.html
1)安裝
windows安裝:https://www.mongodb.com/download-center#community
linux安裝(ubuntu):sudo apt-get install mongodb
windows環境下,在安裝目錄下的Server\3.6\bin\目錄下麵有一個mongo.exe,雙擊打開即可
linux環境下,打開終端輸入mongo即可
2)MongoDB數據結構簡述
結合mysql數據結構對比
3)數據操作
查看所有資料庫:show dbs
創建或切換資料庫:use dbname (若資料庫存在則切換,不存在則創建)
刪除當前資料庫:db.dropDatabase()
查看資料庫所有表:show tables
mongoDB中所有數據操作都使用javascript語法
1.插入操作
首先 切換到某資料庫,若不切換,則預設在test資料庫中操作
上圖的兩條數據中,id為1的數據,插入操作為
db.testable.insert({ 'user_name':'Mark Hanks', 'email':'[email protected]', 'age':25, 'city':'Los Angeles' })
insert操作,若testable表存在,則會在該表中插入該條數據,若不存在則會創建該表,再插入該條數據
mongoDB會自動創建欄位_id,類型為object id
插入文檔你也可以使用 db.testable.save(document) 命令。如果不指定 _id 欄位 save() 方法類似於 insert() 方法。如果指定 _id 欄位,則會更新該 _id 的數據。
2.查詢操作
更詳細的查詢操作請參考https://docs.mongodb.com/manual/reference/operator/query/
db.collection.find(query, projection)
query為查詢條件,projection使用投影操作符指定返回的鍵,忽略該參數則返回所有鍵
查詢該集合中所有數據:
db.testable.find().pretty()
find()預設參數則查詢所有數據,追加pretty()函數,則可以格式化返回的文檔數據
例如要查詢上面添加的數據,則
db.testable.find({ 'name':'Mark Hanks' })
該操作查詢姓名欄位為Mark Hanks的數據
若要查詢年齡大於20的數據則
db.testable.find({ 'age':{'$gt':20} })
上述操作查找年齡大於20的數據 gt 對應英文 greater than
相應的比較符號還有:
$gt:大於 (greater than)
$gte:大於等於(greater than equal)
$lt:小於(less than)
$lte:小於等於(less than equal)
若想要多次比較,則用逗號隔開即可,比如查詢大於20小於25的文檔
db.testable.find({ 'age':{'$gt':20,'$lt':25} })
還可以通過數據類型進行比較,比如查詢name欄位為string類型的數據
db.testable.find({ 'name':{'$type':2} })
2為string的類型號,對應的代碼如圖
若想實現跳過多少條數據,再去多少條數據的操作則可以實用skip函數和limit函數
例如想要跳過前5條數據,取出5條數據,則:
db.COLLECTION_NAME.find().limit(5).skip(5)
limit限制取出數據的條數,skip限制跳過數據的條數
3.刪除操作
remove() 方法的基本語法格式
db.collection.remove( <query>, <justOne> )
MongoDB 2.6 版本以後的語法格式
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
其中:
-
- query :(可選)刪除的文檔的條件。
- justOne : (可選)如果設為 true 或 1,則只刪除一個文檔。
- writeConcern :(可選)拋出異常的級別
例如,要刪除上面插入的數據,可以執行操作
db.testable.remove({ {'name':'Mark Hanks'} , {justOne:true} })
上述操作的意思是,刪除一條name為Mark Hanks的數據,若justOne為false,則刪除所有name為Mark Hanks的數據,預設為false
若祥清空該集合中的所有數據,則執行db.testable.remove({})即可
4)更新操作
語法格式如下:
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
-
- query : update的查詢條件,類似sql update查詢內where後面的。
- update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的
- upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
- multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
- writeConcern :可選,拋出異常的級別。
例如,要將user_name為Mark Hanks的數據的年齡設置為30
db.collection.update( {'user_name':'Mark Hanks'}, {'$set':{'age':30}}, { multi: true } )
更詳細的update操作請參考https://docs.mongodb.com/manual/reference/operator/update/