1. 程式人生 > >MongoDB的基本操作(插入、刪除、更新、索引)

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.test.insert({"content" : "ceshi"}) >

//第二個例項

db.createCollection(“test”, { capped : false, autoIndexId : true, size : 1024102410, max : 999999 } )
{ “ok” : 1 }

<font color=#0099ff size=4 face="黑體">4.刪除集合</font>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.collectionName.drop()`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;collectionName: 準備刪除的集合名稱。返回值 true 成功刪除;false 反之。
&emsp;&emsp;<font color=red size=4>例項:</font>

db.test.drop()
true

<font color=#0099ff size=4 face="黑體">5.插入文件</font>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.collectionName.insert(document)`
或`db.collectionName.save(document)`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;collectionName: 為集合名稱,document: 是一個json格式的字串。
&emsp;&emsp;insert() 方法是插入一條不同的資料,_id相同會插入失敗,但save() 方法在插入一條資料時,如果_id不一樣則插入,如果_id一樣則修改。
&emsp;&emsp;<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>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.collection.update(<query>,<update>,<option>)`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;query: update的查詢條件,類似sql語句中where後面的;
&emsp;&emsp;update: update的物件和一些更新的操作符(如$set)等,也可以理解為sql中update內set後面的。
&emsp;&emsp;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>
&emsp;&emsp;<font color=red size=4>例項:</font>

db.test.update({‘name’:‘MongoDB基礎教程’},{$set:{‘age’:23}},{multi:true})

<font color=#0099ff size=4 face="黑體">7.查詢文件</font>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.collection.find(query, projection)`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;query:可選引數,使用查詢操作符指定查詢條件;
&emsp;&emsp;projection:可選引數,使用投影操作符指定返回的鍵。查詢時返回文件中所有鍵值, 只需省略該引數即可(預設省略)。
&emsp;&emsp;<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>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.collection.remove(<query>, <justOne>)`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;query: 可選引數,刪除的文件的條件;
&emsp;&emsp;justOne: 可選引數,如果設為 true 或 1,則只刪除一個文件。如果不選引數則集合中全部文件都刪除。
&emsp;&emsp;<font color=red size=4>例項:</font>

//按指定條件刪除

db.test.remove({‘name’:‘MongoDB基礎教程’})

//刪除全部

db.test.remove({})

###三、MongoDB索引操作
<font color=#0099ff size=4 face="黑體">1.建立索引</font>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.collection.createIndex(keys, options)`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;在3.0版本之前的語法命令是` db.collection.ensureIndex()`,但現在也可以使用,但它是createIndex的別名。
&emsp;&emsp;keys: 為你要建立的索引欄位,1 為指定按升序建立索引,-1 按降序來建立索引;
&emsp;&emsp;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>
&emsp;&emsp;<font color=red size=4>例項:</font>

db.test.createIndex({name: 1, age: 1}, {background: true})

<font color=#0099ff size=4 face="黑體">2.查詢索引</font>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.test.getIndexes()`
&emsp;&emsp;<font color=red size=4>說明:</font>檢視集合的所有索引。
&emsp;&emsp;<font color=red size=4>例項:</font>

db.test.getIndexes()

<font color=#0099ff size=4 face="黑體">3.刪除索引</font>
&emsp;&emsp;<font color=red size=4>語法:</font>`db.users.dropIndex(indexName)`或`db.users.dropIndexes()`
&emsp;&emsp;<font color=red size=4>說明:</font>
&emsp;&emsp;indexName: 索引名稱;
&emsp;&emsp;dropIndex(): 方法用於刪除指定的索引;
&emsp;&emsp;dropIndexes(): 方法用於刪除全部的索引。
&emsp;&emsp;<font color=red size=4>例項:</font>

//刪除指定集合的索引

db.test.dropIndex(“name_1”)

//刪除集合test的全部索引

db.test.dropIndexes()

###四、結束語
&emsp;&emsp;如果想學好MongoDB就需要多練多想,光看是不夠的。
&emsp;&emsp;不足點:文章中更新文件和查詢文件還有很多很多操作。比較更新或查詢文件中還有各種操作符,查詢文件中還有各種函式,比如 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) 刪除元素 eraseclearpop_backpop_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 打開文檔 前言 通過添加圖層,我們可以將文本、圖片、表格、圖形等元素精確定位於頁面指定位置,將這些元素進行疊放、組合形成頁面的最終效果。此外,對於頁面中已有的圖層我們也可以進行設置圖層可見性、刪除圖層等操

3PPSPRPDF編輯器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、查詢命令