MongoDB的基本操作(插入、刪除、更新、索引)
###一、MongoDB與Sql資料庫概念上的區別
MongoDB與SQL資料庫有幾個概念上的問題是不一樣的,主要有sql資料庫中的表(table)在MongoDB中叫集合(collection);sql資料庫表中一行記錄(row)在MongoDB中叫文件(document);MongoDB中的主鍵(_id)能自動建立,只有弄清楚這兩個大的區別,那就可以開始MongoDB的操作了。
###二、MongoDB的基本操作
1.建立資料庫
語法:use databaseName
說明:如果資料庫不存在,則建立資料庫(需要往裡面插資料才建立,不然退出去就沒了);否則切換到指定資料庫。
例項:
> use test
switched to db test
> db
test
>
2.刪除資料庫
語法:db.dropDatabase()
說明:刪除當前資料庫,預設為 test,要想刪除指定資料庫,需要先使用use databaseName
切換到 databaseName 再進行刪除,同時可以使用db
命令檢視當前資料庫名。
例項:
> use test
switched to db test
>
3.建立集合
語法:db.createCollection(name, options)
或db.collectionName.insert(obj)
說明:
collectionName: 建立集合的名稱,MongoDB可以不用單獨的建立集合,當往裡面插文件時會自動建立集合;
name: 建立的集合名稱;
options: 可選引數, 指定有關記憶體大小及索引的選項。引數見下表:
欄位 | 型別 | 說明 |
---|---|---|
capped | 布林 | 設定為 true 時建立固定集合且必須指定 size 引數。固定集合是指有著固定大小的集合,當達到最大值時,它會自動覆蓋最早的文件。 |
autoIndexId | 布林 | 預設為 false。true:自動在 _id 欄位建立索引。 |
size | 數值 | 為固定集合指定一個最大值(單位位元組)。 |
max | 數值 | 指定固定集合中包含文件的最大數量(單位條)。 |
//第二個例項
db.createCollection(“test”, { capped : false, autoIndexId : true, size : 1024102410, max : 999999 } )
{ “ok” : 1 }
<font color=#0099ff size=4 face="黑體">4.刪除集合</font>
  <font color=red size=4>語法:</font>`db.collectionName.drop()`
  <font color=red size=4>說明:</font>
  collectionName: 準備刪除的集合名稱。返回值 true 成功刪除;false 反之。
  <font color=red size=4>例項:</font>
db.test.drop()
true
<font color=#0099ff size=4 face="黑體">5.插入文件</font>
  <font color=red size=4>語法:</font>`db.collectionName.insert(document)`
或`db.collectionName.save(document)`
  <font color=red size=4>說明:</font>
  collectionName: 為集合名稱,document: 是一個json格式的字串。
  insert() 方法是插入一條不同的資料,_id相同會插入失敗,但save() 方法在插入一條資料時,如果_id不一樣則插入,如果_id一樣則修改。
  <font color=red size=4>例項:</font>
//第一個例項
db.test.insert({_id:1,
name: ‘MongoDB基礎教程’,
age:22,
author: ‘ouyang’
})
//第二個例項
db.test.save({_id:1,
name: ‘MongoDB基礎教程’,
age:22,
author: ‘XXXXX’
})
<font color=#0099ff size=4 face="黑體">6.更新文件</font>
  <font color=red size=4>語法:</font>`db.collection.update(<query>,<update>,<option>)`
  <font color=red size=4>說明:</font>
  query: update的查詢條件,類似sql語句中where後面的;
  update: update的物件和一些更新的操作符(如$set)等,也可以理解為sql中update內set後面的。
  option: 為可選引數,有如下三個:
<table>
<thead>
<tr>
<th>欄位</th>
<th width="50px">型別</th>
<th align="center">說明</th>
</tr>
</thead>
<tbody>
<tr>
<td>upsert</td>
<td>布林</td>
<td align="left">在 update 不存在的記錄時,設定 true 為插入,false 反之;預設是false。</td>
</tr>
<tr>
<td>multi</td>
<td>布林</td>
<td align="left"> 如果這個引數為true,就把按條件查出來多條記錄全部更新;預設是 false 只更新找到的第一條記錄。</td>
</tr>
<tr>
<td>writeConcern</td>
<td>數值</td>
<td align="left">丟擲異常的級別。</td>
</tr>
</tbody>
</table>
  <font color=red size=4>例項:</font>
db.test.update({‘name’:‘MongoDB基礎教程’},{$set:{‘age’:23}},{multi:true})
<font color=#0099ff size=4 face="黑體">7.查詢文件</font>
  <font color=red size=4>語法:</font>`db.collection.find(query, projection)`
  <font color=red size=4>說明:</font>
  query:可選引數,使用查詢操作符指定查詢條件;
  projection:可選引數,使用投影操作符指定返回的鍵。查詢時返回文件中所有鍵值, 只需省略該引數即可(預設省略)。
  <font color=red size=4>例項:</font>
//第一個例項
db.test.find()
//AND 例項
db.test.find({key1:value1, key2:value2})
//OR 例項
db.test.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
)
<font color=#0099ff size=4 face="黑體">8.刪除文件</font>
  <font color=red size=4>語法:</font>`db.collection.remove(<query>, <justOne>)`
  <font color=red size=4>說明:</font>
  query: 可選引數,刪除的文件的條件;
  justOne: 可選引數,如果設為 true 或 1,則只刪除一個文件。如果不選引數則集合中全部文件都刪除。
  <font color=red size=4>例項:</font>
//按指定條件刪除
db.test.remove({‘name’:‘MongoDB基礎教程’})
//刪除全部
db.test.remove({})
###三、MongoDB索引操作
<font color=#0099ff size=4 face="黑體">1.建立索引</font>
  <font color=red size=4>語法:</font>`db.collection.createIndex(keys, options)`
  <font color=red size=4>說明:</font>
  在3.0版本之前的語法命令是` db.collection.ensureIndex()`,但現在也可以使用,但它是createIndex的別名。
  keys: 為你要建立的索引欄位,1 為指定按升序建立索引,-1 按降序來建立索引;
  options: 為可選引數,下面列舉幾個常用的:
<table>
<thead>
<tr>
<th>欄位</th>
<th width="50px">型別</th>
<th align="center">說明</th>
</tr>
</thead>
<tbody>
<tr>
<td>unique</td>
<td>布林</td>
<td align="left">建立的索引是否唯一。指定為true建立唯一索引。預設值為false。</td>
</tr>
<tr>
<td>name</td>
<td>布林</td>
<td align="left"> 索引的名稱。如果未指定,MongoDB的通過連線索引的欄位名和排序順序生成一個索引名稱。</td>
</tr>
<tr>
<td>background</td>
<td>布林</td>
<td align="left">建索引過程會阻塞其它資料庫操作,background可指定以後臺方式建立索引,即增加 "background" 可選引數。 "background" 預設值為false。</td>
</tr>
<tr>
<td>expireAfterSeconds</td>
<td>數值</td>
<td align="left">設定集合的生存時間,單位(秒)。</td>
</tr>
</tbody>
</table>
  <font color=red size=4>例項:</font>
db.test.createIndex({name: 1, age: 1}, {background: true})
<font color=#0099ff size=4 face="黑體">2.查詢索引</font>
  <font color=red size=4>語法:</font>`db.test.getIndexes()`
  <font color=red size=4>說明:</font>檢視集合的所有索引。
  <font color=red size=4>例項:</font>
db.test.getIndexes()
<font color=#0099ff size=4 face="黑體">3.刪除索引</font>
  <font color=red size=4>語法:</font>`db.users.dropIndex(indexName)`或`db.users.dropIndexes()`
  <font color=red size=4>說明:</font>
  indexName: 索引名稱;
  dropIndex(): 方法用於刪除指定的索引;
  dropIndexes(): 方法用於刪除全部的索引。
  <font color=red size=4>例項:</font>
//刪除指定集合的索引
db.test.dropIndex(“name_1”)
//刪除集合test的全部索引
db.test.dropIndexes()
###四、結束語
  如果想學好MongoDB就需要多練多想,光看是不夠的。
  不足點:文章中更新文件和查詢文件還有很多很多操作。比較更新或查詢文件中還有各種操作符,查詢文件中還有各種函式,比如 limit() 、sort() 和 skip() 等等。。。其次索引在 find() 中強制使用不有涉及等等。
相關推薦
連結串列的基本操作(插入,刪除,排序、逆置等)
連結串列是資料結構中最基本的,也是非常經典的,在面試筆試中也是經常出現的題,但是萬變不離其宗,只要掌握了基本的操作,一起盡在掌控。 特別要注意的一點是處理時千萬要把是否為頭進行判斷,做為一個特例,或者建立連結串列就先固定建立一個表頭,這樣程式碼就沒這麼多判斷了。 #i
C++|STL學習筆記-map的基本操作(插入,刪除,遍歷,大到小輸出)【仿大佬寫法】
首先的程式碼是插入,刪除,遍歷 執行截圖如下: 原始碼如下: #include <map> #include <iostream> #include <algorithm> using namespace std; typedef pair
MongoDB的基本操作(插入、刪除、更新、索引)
###一、MongoDB與Sql資料庫概念上的區別 MongoDB與SQL資料庫有幾個概念上的問題是不一樣的,主要有sql資料庫中的表(table)在MongoDB中叫集合(collection);sql資料庫表中一行記錄(row)在MongoDB中叫文件(
Java MongoDB基本操作(查詢、刪除、更新等)
正在持續更新... MongoDB中的資料 { "_id": ObjectId("57c43caed4c63d7e39b5dc48"), "name": "張三", "age": 15, "arr": [1,2,3], "arrOb
C++ 順序容器的操作(6) 刪除元素 erase、clear、pop_back、pop_front
刪除元素 1、c.erase(p); 2、c.erase(b,e);//刪除從b到e的所有元素,包括b但不包括e 3、c.clear();//刪除所有元素 4、c.pop_back() 5、c.pop
MongoDB基礎教程系列--第二篇 MongoDB基本操作(一)
1、安裝環境 在官網上下載MongoDB的最新版本,根據自身Windows版本下載正確的MongoDB版本。下載後,雙擊32位或者64位.msi檔案,按操作提示安裝就可以了。 說明: 32 位版本的 MongoDB 只支援 2G 以下的資料庫,只適用於測試及評估。 在
MongoDB基礎教程系列--第三篇 MongoDB基本操作(二)
1、集合操作 1.1、建立集合 MongoDB 用 db.createCollection(name, options) 方法建立集合。 格式 1 db.createCollection(name, options) 其中
mongodb基本操作(CRUD)
本文最主要參考:好,下面上貨1、先進到MongoDB的shell中mongo ip:portmongo 192.168.0.123:27017在mongo下進行清屏是cls命令。2、檢視當前有哪些資料庫
MongoDb 基本操作(PHP)
MongoDb基本操作(PHP) 用mongo的話需要開啟php中的mongo擴充套件(此處比較坑)。 開啟php的mongo擴充套件後就可以使用new Mongo()來建立一個例項。 在tp5中建立一個mongo的例項: 配置檔案中的內容:
Java單鏈表基本操作(六)--刪除重複節點;
package listnode; public class DeleteDuplecate_SingleList { public static void main(String[] arg
C#對資料庫的操作(查詢,刪除,更新)
查詢: static IQueryable<Outlet> Query(string Region, string DC, string CustomerCode, string KA, string OutletCode, string NestleOutletCode
單鏈表的基本操作(讀取、插入、刪除)及優缺點總結
1.單鏈表的讀取 獲取連結串列第i個數據的演算法思路: 1. 宣告一個指標p指向連結串列的第一個結點,初始化j從1開始; 2. 當j< i 時,遍歷連結串列,讓p的指標向後移動,不斷指向下一結點,j累加1; 3. 若到連結串列末尾p為空,說明第i個
自己寫的順序表的基本操作,插入、刪除、修改,給出完整程式碼,其中運用到goto語句
#include<iostream> using namespace std; #define MAXSIZE 100 typedef int DataType; typedef struct {DataType data[MAXSIZE]; //通常用一位陣列
鏈表的基本操作(元素刪除,插入,鏈表生成,鏈表倒置)
printf 輸出 size ++ can 鏈表的基本操作 nbsp 插入 include #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct
UFT 基本操作(描述性編程、函數、循環)
ive dial 方法 wid 基本操作 logs pan log ron 1、描述性編程 class("描述性屬性1:=值","描述性屬性2:=值") 如輸入姓名,使用對象屬性方法: Dialog("Login").WinEdit("Agent Name:"
mysql數據庫的基本操作:創建數據庫、查看數據庫、修改數據庫、刪除數據庫
bbs nor nlb res tco ipc sep tmg atop 本節相關: 創建數據庫,查看數據庫,修改數據庫,刪除數據庫 首發時間:2018-02-13 20:47 創建數據庫 : 語法 : create database 數據庫名字[庫選項]
C# 操作PDF 圖層(Layer)——添加、刪除圖層、設置圖層可見性
add 根據 大小 line col 9.png color str 打開文檔 前言 通過添加圖層,我們可以將文本、圖片、表格、圖形等元素精確定位於頁面指定位置,將這些元素進行疊放、組合形成頁面的最終效果。此外,對於頁面中已有的圖層我們也可以進行設置圖層可見性、刪除圖層等操
3P(PS、PR、PDF編輯器Acrobat)中的基基本操作(三)
確認密碼 安全性 inf 選中 編輯器 png nbsp 打開 順序 本文介紹一些關於圖片、視頻、PDF的最常用操作: 圖像方面:旋轉、裁剪、拼接、水印(文字)、導出 軟件:Photoshop 視頻方面:剪切(拼接)、水印(文字、字幕)、導出 軟件:Premi
MongoDB基本操作、備份還原及用戶管理
score 不同 文件的 進程命令 favicon 再次 ESS for 服務器 今日趁周末得空,將近日在學習的MongoDB數據庫常用命令作以下整理,方便工作中查看 MongoDB的邏輯結構主要由文檔、集合和數據庫三部分組成。其中文檔是MongoDB的核心概念,它是Mo
Hadoop HDFS基本操作(ubuntu16.04 、Hadoop 3.0.3)
hdfs shell的基本操作以及hdfsWeb檢視檔案 在安裝好hadoop叢集併成功的啟動了hdfs之後,我們就可以利用hdfs對檔案進行操作了,一下是對檔案的一些基本操作 特別注意:訪問HDFS目錄時,一定要帶有/ 否則命令會出錯! hdfs基本操作 1、查詢命令