MongoDB 数据库、集合创建删除与文档插入
?
本文章主要介紹mongodb的基本命令,前提條件,你的本地已經安裝了mongo。
一、基本命令使用(主要是創建,增刪改。)
0.mongoDb統計信息
獲得關于MongoDB的服務器統計,需要在MongoDB客戶端鍵入命令db.stats()。這將顯示數據庫名稱,阻礙收集和數據庫中的文檔。
?
1.創建數據庫
命令:use?
use DATABASE_NAME ?:用戶創建數據庫,如果存在則使用數據庫,沒有則創建。
例子:創建數據庫mydb
>use mydb ?
>switched to db myPort?
2.查詢當前選擇的數據庫
命令:db
3.查詢數據庫列表
命令:show dbs?
注意:要顯示的數據庫,需要把它插入至少一個文件
4.刪除數據庫
命令:?db.dropDatabase() ?
注意:刪除正在使用的數據庫,如果沒有選擇,則刪除默認的test數據庫
5.創建集合
命令:db.createCollection(name, options)
| 參數 | 類型 | 描述 |
| Name | String | 要創建的集合名稱 |
| options | Document | (可選)指定有關內存大小和索引選項 |
| capped | Boolean | (可選)如果為true,則啟用封頂集合。封頂集合是固定大小的集合,會自動覆蓋最早的條目,當它達到其最大大小。如果指定true,則需要也指定尺寸參數。 |
| autoIndexID | Boolean | (可選)如果為true,自動創建索引_id字段的默認值是false。 |
| size | number | (可選)指定最大大小字節封頂集合。如果封頂如果是 true,那么你還需要指定這個字段。 |
| max | number | (可選)指定封頂集合允許在文件的最大數量。 |
例子:
>db.createCollection("mycollection")
{ "ok" : 1 }
>db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
? { "ok" : 1 }
在MongoDB中,不需要創建集合。當插入一些文件 MongoDB 自動創建的集合。
例子:
?6.查詢集合
命令:show collections?
7.刪除集合
命令:db.COLLECTION_NAME.drop():從當前數據庫刪除某個集合。
drop() 方法將返回?true,如果選擇成功收集被丟棄,否則將返回?false。
8.數據類型
String,Integer,Boolean,Double,Arrays ,
Min/ Max keys?: 這種類型被用來對BSON元素的最低和最高值比較;
Timestamp?: 時間戳。這可以方便記錄時的文件已被修改或添加;
Object?: 此數據類型用于嵌入式的文件。
? Null?: 這種類型是用來存儲一個Null值;
Symbol?: 此數據類型用于字符串相同,但它通常是保留給特定符號類型的語言使用;
Date?: 此數據類型用于存儲當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到創建對象。
Object ID?: 此數據類型用于存儲文檔的ID;
Binary data?: 此數據類型用于存儲二進制數據;
Code?: 此數據類型用于存儲到文檔中的JavaScript代碼;
Regular expression?: 此數據類型用于存儲正則表達式。
9.插入文檔
命令:>db.COLLECTION_NAME.insert(document)
插入文檔中,如果我們不指定_id參數,然后MongoDB 本文檔分配一個獨特的ObjectId。
_id 是12個字節的十六進制數,唯一一個集合中的每個文檔
save操作和insert的區別:
如果document不指定_id 或者_id不存在 save與insert操作一致,如果存在_id,并且_id在document中已經存在,使用insert會報錯,如果使用save則會替換之前的數據。
例子:
首先插入一條_id為575e262dccf718eb665437a1的文檔,在用insert時會出錯,禁止插入,如果使用save操作可以保存成功。
?
10.刪除文檔
? ??MongoDB的?remove()?方法用于從集合中刪除文檔。remove()?方法接受兩個參數。第一個是刪除criteria ,第二是justOne標志:
deletion criteria :(可選)刪除標準,根據文件將被刪除。
justOne :?(可選)如果設置為true或1,然后只刪除一個文件。
? ?命令:>db.COLLECTION_NAME.remove(document)
? ? ? ? ? ? >db.COLLECTION_NAME.remove({}) 清空所有的數據,但是不建議用,因為速度慢,性能不好,推薦的辦法就是將集合刪除然后重新創建集合和索引。
? ? 例子:刪除name為zzx的文檔。
? ? ? ??
? ??11.更新文檔
? ??MongoDB的?update()?和?save()?方法用于更新文檔的集合。?update()方法更新現有的文檔值,而替換現有的文檔通過的文件中?save()?方法。
? ??11.1 update
? ? ?語法:>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA,?UPDATED_DATA)
? ? 常見的錯誤:查詢條件匹配了多個文檔,更新的時候第二個參數的存在就可能出現重復的“_id”,數據庫就會報錯。
? ? 用新的文檔替換查到的文檔。
????使用修改器:
? ??通常文檔只會有一部分的更新,使用原子的修改器可以高效的實現更新。
? ??①“$set”修改器:
? ? 用來指定一個鍵的值,就是賦值操作,如果這個鍵值不存在就創建,。
? ? 例子:
? ? ? ??
? ??“$set”也可以修改鍵的數據類型,將某個鍵改成任意的數據類型。包括數組,集合,
? ? “$unset”:刪除某個鍵值。
? ? 例子:
? ? ? ??
? ???② “$inc” 增加或者減少某個值
? ? 用于增加已有的鍵值,如果沒有則創建。
? ? 例子:減少年齡三歲
? ? ?
? ??只能用于數字,如果用于其他會報錯
????③“$push”:數組插入
? ? 會在已有的數組末尾添加一個元素,如果沒有則創建一個數組。
? ? 例子:
? ? ??
? ??④"$addToSet":與“$push”使用方法一樣,保證數據不重復
? ??⑤數組的定位修改器
? ??如果數組有多個,我們只想修改部分,有兩種方案:一、通過位置;二、定位操作符。
? ??upset使用
? ??一種特殊的更新,如果查詢不到更新的數據,則創建這個文檔。
? ? 使用方法:>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA,?UPDATED_DATA,true)
二、瞬間完成
? ??以上的插入、刪除、更新操作都是瞬間完成,他不需要等待服務器相應。這樣有好處有壞處。好處就是快速相應,減少客戶端的等待時間。壞處就是如果服務器沒有將數據做好處理,或者客戶端不知道服務器掛掉會一直發送數據。對于某些重要的信息還是很危險的。
? ??1.安全操作:
? ??對于某些需要數據庫服務器返回結果的操作,可以使用安全版本操作。驅動程序會等待數據庫相應,如果遇見錯誤則拋出一個可捕獲的異常。
?
?
寫在后面的話:吐槽下博客園,昨天寫了半天的文章,結果沒有保存,電腦掛點啦。都丟失啦,都沒有做自動保存 好搓!!!!!
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/zhangzongxing01/p/5578979.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的MongoDB 数据库、集合创建删除与文档插入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android,UI主线程与子线程
- 下一篇: redirect和forward