MongoDB入門系列(一):基礎概念和安裝

来源:http://www.cnblogs.com/chenmh/archive/2017/11/11/7763311.html
-Advertisement-
Play Games

概述 MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、數據類型、功能以及安裝等。 環境: OS:Windows Version:3.4 一、安裝 1.下載解壓 在官網下載對應操作系統版本的安裝包,然後解壓;我這裡使用Win ...


概述  

MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、數據類型、功能以及安裝等。

 

環境:

OS:Windows

Version:3.4

一、安裝

1.下載解壓

在官網下載對應操作系統版本的安裝包,然後解壓;我這裡使用Windows環境安裝測試。

2.在D盤創建Mongodb\data\db目錄

3.初始化數據

最好先將bin目錄加入到環境變數,否則要到命令目錄下執行。

mongod --dbpath D:\mongodb\data\db

 4.啟動服務

在D:\mongodb目錄下創建mongo.config配置文件,配置文件內容如下,這裡只配置了數據和日誌路徑,其它的參數暫時預設。

dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongo.log  

將mongodb添加到服務啟動項

mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"

刪除服務啟動項命令

mongod  --remove --serviceName "MongoDB"

啟動服務

net start MongoDB

測試服務是否啟動,在瀏覽器中輸入localhost:27017;如果沒有手動指定埠那麼預設埠就是27017

二、基礎概念

1.特點

MongoDB並不具備一些關係型資料庫中和普遍的功能,如連接和複雜的多行事務。省略這些功能是出於架構上的考慮(為了得到更好的擴展性),因為在分散式系統中這兩個功能難以高效的實現,同時為了追求性能MongoDB會儘可能的將一些處理邏輯交給客戶端(通過驅動程式或應用程式代碼來實現)。

2.功能

1.索引

MongoDB支持通用的二級索引,允許多種快捷查詢,且提供唯一索引、複合索引、地理空間索引以及全文索引等。

2.聚合

MongoDB支持“聚合管道”,用戶能通過簡單的片段創建複雜的聚合,並通過資料庫自動優化。

3.特殊的聚合類型

MongoDB支持存在時間有限的集合,適用於那些將在某個時刻過期的數據,如會話。MongoDB也支持固定大小的集合,用於保存近期數據,如日誌。

4.文件存儲

MongoDB支持一種非常易用的協議,用於存儲大文件和文件元數據。

3.基本概念

  • 文檔是MongoDB中數據的基本單元,類似關係型資料庫中的行。
  • 一個實例可以擁有多個相互獨立的資料庫,每個資料庫都擁有自己的集合,集合類似關係型資料庫中的表。
  • 每個文檔都有一個特殊的鍵“_id”,這個鍵在文檔所屬的集合中是唯一的。
  • 每個文檔不能有重覆的鍵值。例如{"blog":"news","blog":"book"},在該文檔中鍵值blog重覆。
  • 一個集合可以存儲混合的文檔,即不同類型的文檔。但通常不這樣做,為了方便查詢和管理一般一種類型的數據放一個集合。
  • MongoDB不但區分類型,而且區分大小寫。

4.命名、規則

文檔

  • 鍵不能含有\0(空字元)。這個字元用於表示鍵的結尾。
  • .和$具有特殊意義,只能在特定環境下使用。

集合

  • 集合名不能是空字元串
  • 集合名不能包含\0字元
  • 集合名不能以"system."開頭
  • 集合名中不能使用保留字元“$”

資料庫

  • 不能是空字元串("")。
  • 命名中不能含有:/、\、.、''、*、<、>、:、|、?、$、\0(空字元)。一般由字母和數字組成。
  • 資料庫名區分大小寫,建議小寫。
  • 資料庫名最多64個位元組。

5.數據類型

1.null

用於表示空值或不存在的欄位

例:{"x":null}

2.布爾型

true和flase兩個值,例:

{"x":ture}

3.數值

預設使用64位的浮點型數值,對於整形值,可以使用NumberInt類(4位元組帶符號整數)或NumberLong類(表示8字元帶符號整數)。例:

預設:{"x":3.14}或者{"x":3}

指定整形值:{"x":NumberInt("3")}或者{"x":NumberLong("3")}

4.字元串

{"x":"foobar"}

5.日期

{"x":new Date()}

6.正則表達式

{"x" : /a/b}

7.數組

{"x" : ["a","b","c"]}

8.內嵌文檔

文檔可以嵌套其它文檔,被嵌套的文檔作為父文檔的值

{"x" :{"a" : "b"}}

9.對象id

對象id是一個12位元組的ID,是文檔的唯一標識。

10.二進位類型

二進位數據是一個任意位元組的字元串

11.代碼

總結

 

 

 

 

 

備註:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接,否則保留追究責任的權利。

《歡迎交流討論》

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!DOCTYPE html><html> <!-- 圖片輪播的效果可以用bootstrap框架來實現,也可以自己直接寫,這裡採用了自己寫的方式來實現--><head><meta charset="UTF-8"><title>Insert title here</title></head><styl ...
  • 前言 今天是雙十一這個青年人同慶的日子,一年一度的剁手節又開始了,我相信正在逛著淘寶網站的同志們一定被彈出的廣告搞得不厭其煩吧...那麼,網站的廣告是怎麼使用腳本寫出來的呢? 下麵就讓我們簡單地介紹一下網站彈出廣告的這個效果吧。 一、案例介紹 首先我們想要在網站的頂部做一個能夠定時彈出廣告的東西,效 ...
  • 這是我自己早前聽課時整理的前端全套知識點,適用於初學者,也可以適用於中級的程式員,你們可以下載下來。我自認為還是比較系統全面的,可以抵得上市場上90%的學習資料。討厭那些隨便亂寫的資料還有拿出來賣錢的人!在這裡我免費的分享出來供大家使用! 在這個平臺真的可以學習到不少的東西!有很多的人都在無私的奉獻 ...
  • 關註微信公眾號《IT技術資源共用》獲取更多資源! 微信號:feng1376311650 或者掃二維碼關註獲取下麵全部資源: python: 【0001】Python安裝包,教程文檔,工具包 鏈接: http://pan.baidu.com/s/1hsnHizM 密碼:9x03 【0002】Pytho ...
  • E-R模型(實體關係模型) 當前物理的資料庫都是按照E-R模型進行設計的 E表示entry,實體 R表示relationship,關係 一個實體轉換為資料庫中的一個表 關係描述兩個實體之間的對應規則,包括 一對一 一對多 多對多 關係轉換為資料庫表中的一個列 *在關係型資料庫中一行就是一個對象 數據... ...
  • create table test( id int(10) unsigned not null auto_increment, name varchar(10) character set utf8, age int(10),primary key(id)) engine=MyISAM create ...
  • DBLINK資料庫鏈接是一個資料庫中的模式對象,使您可以訪問另一個資料庫上的對象。 dblink限定符允許您引用除本地資料庫以外的資料庫中的對象,如果省略了dblink,那麼Oracle假定您指的是本地資料庫中的一個對象,並非所有的SQL語句都允許您訪問遠程資料庫上的對象。 新增: 方法一:藉助配置 ...
  • 1、找到redis.conf,配置密碼 2、要重新啟動一下redis 3、用redis-cli重新登陸,我們查詢的時候提示“Authentication required”查詢失敗 4、重新帶密碼登陸,發現可以查詢了 參考: [1]博客,http://blog.csdn.net/zyz5119197 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...