MongoDB入門基礎知識


通過前一篇文章,已經學習了如何下載安裝MongoDB,在本文主要以一些簡單的小例子,簡述MongoDB的常規操作CRUD【增刪改查】,僅供學習分享使用,如有問題,還請指正。

數據庫操作

創建及切換數據庫

語法:use db_name;

釋義:如果數據庫存在,則切換到對應數據庫;如果數據庫不存在,則創建數據庫。如下所示:

顯示所有數據庫

語法:show dbs;

釋義:顯示當前連接的所有的數據庫,如下所示:

 注意:在剛創建完數據庫時,通過show dbs進行查看,是不顯示的,因為數據庫是空的,沒有創建集合。

顯示當前數據庫

語法:db;

釋義:顯示當前連接的數據庫,如下所示:

 刪除數據庫

語法:db.dropDatabase();

釋義: 刪除當前連接的數據庫,如果要刪除其他數據庫,可通過use db_name 進行切換,然后再刪除。

示例:刪除后,在show dbs時,則不顯示,如下所示:

注意:在刪除數據庫后,通過db命令,依然顯示刪除后的數據庫,這說明了什么?

集合操作

創建集合

語法:db.createCollection(name,option);

釋義:創建集合,第一個參數是集合名稱,第二個參數是集合選項,屬於非必填項。

關於option可選內容,如下所示:

 注意:capped和size是一對組合,size大小為KB,max為集合中文檔數量。

示例,創建一個名稱為person的固定集合,集合大小為102400,最大文檔數量為100。如下所示:

 創建集合后,再次執行show dbs命令,則會顯示創建的數據庫,如下所示:

 注意:也可以通過insert語句插入文檔時,創建對象。在插入文檔是,如果集合存在,則插入;如果集合不存在,則創建集合,然后插入文檔。

查看已有集合

語法:show collections; 或者 show tables;

釋義:顯示當前連接數據庫中所有集合。

示例:查看hexdb下所有的集合,如下所示:

刪除集合

語法:db.集合名.drop();

釋義:刪除對應的集合及集合中的數據,如果刪除成功,返回true。

示例:刪除person集合,如下所示:

插入文檔

集合中的文檔,是以BSON【Binary JSON】形式存在的。

語法:db.collection_name.insert(document);

釋義:往指定集合中插入文檔。

示例:通過insert語句往集合中插入數據,如果集合不存在,則創建,如下所示:

注意:數據庫已經刪除,但是在創建集合后,又奇跡般的出現了。說明之前的刪除數據庫,只是將數據庫中的集合給刪除了。

一次插入多條文檔

執行一次語句,插入多條文檔

語法:db.集合名.insert([{文檔1},{文檔2},{文檔3}]);

釋義:執行一次語句,插入多條文檔。

示例:一次插入3條文檔,並進行查詢。如下所示:

查詢文檔

查詢集合中的文檔,

語法:db.集合名.find(condition);

釋義:根據條件查詢集合中的文檔,如果條件為空,則查詢集合中所有文檔。

示例:先查詢所有文檔,在根據名稱進行檢索,如下所示:

更新文檔

根據指定條件,更新對應文檔的內容。

更新文檔語法如下所示:

1 db.collection.update(
2    <query>,
3    <update>,
4    {
5      upsert: <boolean>,
6      multi: <boolean>,
7      writeConcern: <document>
8    }
9 )

參數說明:

  • query : update的查詢條件,類似sql update查詢內where后面的。
  • update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set后面的
  • upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。
  • multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
  • writeConcern :可選,拋出異常的級別。

示例:更新lisi的年齡為28,分別用1:表示更新前,2:更新語句,3:更新后。如下所示:

 多個條件更新文檔

1. 多個條件同時滿足時,才能更新文檔。

語法:{條件1,條件2,條件3,...}

在多個條件需要同時滿足時,用逗號隔開,如下所示:

 

2. 多個條件有一個滿足時,即可修改文檔。

語法:$or:[{條件1},{條件2},{條件3}]。如下所示:

 

 刪除文檔

根據指定條件,刪除對應文檔。

語法:

1 db.collection.remove(
2    <query>,
3    <justOne>
4 )

參數說明:

  • query :(可選)刪除的文檔的條件。
  • justOne : (可選)如果設為 true 或 1,則只刪除一個文檔,如果不設置該參數,或使用默認值 false,則刪除所有匹配條件的文檔。
  • writeConcern :(可選)拋出異常的級別。

 示例:刪除名稱為zhangsan的文檔,如下所示:

 

 刪除集合中所有文檔

語法:db.集合名.remove({});

釋義:不帶條件,則表示刪除集合中所有文檔。

MongoDB數據類型

MongoDB的數據類型,不像關系型數據庫的數據類型,需要預先定義,而是根據存儲的值的類型來的。數據類型如下所示:

 備注

浣溪沙·一向年光有限身

【作者】晏殊  【朝代】宋

一向年光有限身。等閑離別易銷魂。酒筵歌席莫辭頻。

滿目山河空念遠,落花風雨更傷春。不如憐取眼前人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM