日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows 安装 MongoDB 和 可视化工具Robo3T

發布時間:2024/7/23 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows 安装 MongoDB 和 可视化工具Robo3T 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MongoDB 官網下載地址:https://www.mongodb.com/try/download/community

MongoDB 是一款非常熱門的 NoSQL 面向文檔的數據庫管理系統, 分為 企業版收費版社區免費版。MongoDB 使用 BSON 對象來存儲,與 JSON 格式類型的 "鍵 - 值" 對( key / value )類似,MongoDB 數據庫和關系型DB的存儲模型對應關系:

NoSQL 數據庫的理論基礎是CAP 理論,分別代表?

  • Consistency(強一致性)。系統在執行某項操作后仍然處于一致的狀態。在分布式系統中,更新操作執行成功之后,所有的用戶都能讀取到最新的值,這樣的系統被認為具有強一致性。
  • Availability(可用性)。A:用戶執行的操作在一定時間內,必須返回結果。如果超時,那么操作回滾,跟操作沒有發生一樣。
  • Partition Tolerance(分區容錯)。分布式系統是由多個分區節點組成的,每個分區節點都是一個獨立的Server,P屬性表明系統能夠處理分區節點的動態加入和離開。

分布式數據系統只能滿足其中兩個特性。

在構建分布式系統時,必須考慮CAP特性。傳統的關系型DB,注重的是CA特性,數據一般存儲在一臺Server上。而處理海量數據的分布式存儲和處理系統更注重AP,AP的優先級要高于C,但NoSQL并不是完全放棄一致性(Consistency),NoSQL保留數據的最終一致性(Eventually Consistency)。最終一致性是指更新操作完成之后,用戶最終會讀取到數據更新之后的值,但是會存在一定的時間窗口,用戶仍會讀取到更新之前的舊數據;在一定的時間延遲之后,數據達到一致性。

一、安裝、

官網安裝文檔:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/

在 Windows 中,默認的安裝文件存儲目錄是:C:\Program Files\MongoDB\Server\4.4\bin,點擊 Windows+R,輸入 cmd,啟動 Command Prompt,進入到安裝目錄:

安裝完之后,如果不想每次啟動都進入到 bin 目錄下,可以設置 環境變量

每次打開 Command Prompt 都需要進入到 MongoDB 的安裝目錄十分麻煩,可以修改系統環境變量,在 Path 變量的字符串后面追加 ";;C:\Program Files\MongoDB\Server\4.4\bin;;",注意兩個Path之間以 英文的分號 ";"?分割。

linux 安裝后的配置

:https://www.cnblogs.com/jasonLiu2018/p/13088971.html

添加用戶名和密碼:

終端輸入mongo,首先添加管理用戶,

show dbs // 顯示所有的數據庫 use admin // 切換到admin db.createUser({user:'root',pwd:'root',roles:['userAdminAnyDatabase']}) db.auth('root','root')

再切換數據庫,添加用戶,

use test db.createUser({user:'root',pwd:'root',roles:['readWrite']})

二、簡單實用

1,啟動 MongoDB 實例

環境變量設置成功之后,在C盤中創建一個文件夾data,用于存儲 MongoDB 的數據庫文件。然后,打開一個命令行工具,輸入mongod 啟動 MongoDB 實例,默認監聽的 TCP 端口是 27017 。

mongod

windows10 無法啟動Mongo解決方法:https://blog.csdn.net/qq_20084101/article/details/82261195

C:\Program Files\MongoDB\Server\4.4\bin>?mongod.exe -f mongod.cfg

MongoDB 同時啟動一個 HTTP 服務器,監聽 27017 端口,如果 MongoDB 實例安裝在本地,那么在瀏覽器中輸入:http://127.0.0.1:27017/? 會顯示下面一行英文:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

mongod?是整個 MongoDB 最核心的進程,負責數據庫的創建,刪除等管理操作,運行在服務器端,監聽客戶端的請求,提供數據服務。

2,鏈接到 MongoDB 實例

不要關閉 MongoDB 實例,新打開一個命令行工具,輸入 mongo ,該命令啟動 mongo shell,shell 將自動連接本地 (localhost) 的 MongoDB 實例,默認的端口是 27017:

命令:mongo

mongo 進程是構造一個Javascript?Shell,用于跟 mongod 進程交互,根據 mongod 提供的接口對MongoDB 數據庫進行管理,相當于 SSMS(SQL Server Management Studio),是一個管理MongoDB 的工具。

3,查看當前連接的 DB

使用命令查看正在連接的數據庫名字

db db.getName()

4,查看 MongoDB 實例中的 db 和 collection

show dbsshow collections db.getCollectionNames()

5,切換 db

use foo

6,db 中創建 users 集合,并向集合中插入一條 document

use foo db.users.insert({"name":"name 1",age:21}) db.users.find()

7,關閉 MongoDB 實例

在 mongo shell中,執行以下命令,關閉 MongoDB 實例

use admin db.shutdownServer()

8,幫助命令

help
  • db.help() :查看數據庫級別的幫助
  • db.mycoll.help() :查看集合級別的幫助

三、mongod 命令常用參數

1,常用參數

mongod 是 MongoDB 系統的主要守護進程,用于處理數據請求,數據訪問和執行后臺管理操作,必須啟動,才能訪問 MongoDB 數據庫。

在啟動 mongod 時,常用的參數是:

  • --dbpath :存儲MongoDB數據文件的目錄
  • --directoryperdb:指定每個數據庫單獨存儲在一個目錄中(directory),該目錄位于--dbpath指定的目錄下,每一個子目錄都對應一個數據庫名字。Uses a separate directory to store data for each database. The directories are under the --dbpath directory, and each subdirectory name corresponds to the database name.
  • --logpath :指定mongod記錄日志的文件
  • --fork:以后臺deamon形式運行服務
  • --journal:開始日志功能,通過保存操作日志來降低單機故障的恢復時間
  • --config(或-f):配置文件,用于指定runtime options
  • --bind_ip :指定對外服務的綁定IP地址
  • --port :對外服務窗口
  • --auth:啟用驗證,驗證用戶權限控制
  • --syncdelay:系統刷新disk的時間,單位是second,默認是60s
  • --replSet :以副本集方式啟動mongod,副本集的標識是setname

2,MongoDB 的啟動方式

? ? 2.1 以命令方式啟動,默認的 dbpath是 C:\data\db

mongod --dbpath=C:\data\db

? ? 2.2 以配置文檔的方式啟動

將 mongod 的命令參數寫入配置文檔,以參數 -f 啟動

mongod -f C:\data\db\mongodb_config.config

? ? 2.3 以 daemon 方式啟動

當啟動 MongoDB 的進程關閉后,MongoDB 隨之關閉,只需要使用 --fork 參數,就能使 MongoDB以后臺守護進程方式啟動。

mongod -fork

3,查看 mongod 的啟動參數

db.serverCmdLineOpts()

四、mongo 命令常用參數

mongo 是一個交互式的 js shell,提供了一個強大的 js 環境,為 DBA 管理 MongoDB,developer查詢 MongoDB 數據提供接口。通過 mongo shell 和 MongoDB 進行交互,查詢和修改 MongoDB 數據庫,管理 MongoDB 數據庫,維護 MongoDB 的副本集和分片集群,是一個非常強大的工具。

在啟動 mongo shell時,常用的參數是:

  • --nodb:?阻止 mongo 在啟動時連接到數據庫實例;
  • --port ?:指定 mongo 連接到 mongod 監聽的TCP端口,默認的端口值是 27017;
  • --host ?:指定 mongod 運行的 server,如果沒有指定該參數,那么 mongo 嘗試連接運行在本地(localhost)的 mongod 實例;
  • :指定 mongo 連接的數據庫
  • --username/-u 和?--password/-p :指定訪問 MongoDB 數據庫的賬戶和密碼,只有當認證通過后,用戶才能訪問數據庫;
  • --authenticationDatabase :指定創建 User 的數據庫,在哪個數據庫中創建 User時,該數據庫就是 User 的 Authentication Database;

五、MongoDB 的可視化工具

? ? 1,推薦?Robomongo

? ? ? ? Robomongo 是開源,免費的MongoDB管理工具,之前叫 Robomongo,后面被收購了,改名 Robo 3T 。下載地址:https://robomongo.org

? ? 2,MongoBooster

? ? ? ? 支持MongoDB 3.2 版本,個人使用免費,用于商業收費,下載地址:MongoBooster下載

六,學習 MongoDB

? ? 1,推薦學習 MongoDB 書籍。動物書《MongoDB權威指南-第二版》,非常經典

? ? 2,學習 MongoDB 的官方手冊:?MongoDB Manual

? ? 3,學習 MongoDB 的入門教程:MongoDB Tutorial

參考文檔:

  • mongod:https://docs.mongodb.com/manual/reference/program/mongod/#bin.mongod
  • mongo:https://docs.mongodb.com/manual/reference/program/mongo/

MongoDB?概念解析

菜鳥教程:http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

不管我們學習什么數據庫都應該學習其中的基礎概念,在mongodb中基本的概念是文檔、集合、數據庫,下面我們挨個介紹。

下表將幫助您更容易理解Mongo中的一些概念:

SQL術語/概念MongoDB術語/概念解釋/說明
databasedatabase數據庫
tablecollection數據庫表/集合
rowdocument數據記錄行/文檔
columnfield數據字段/域
indexindex索引
table joins表連接,MongoDB不支持
primary keyprimary key主鍵,MongoDB自動將_id字段設置為主鍵

通過下圖實例,我們也可以更直觀的了解Mongo中的一些概念:

數據庫

一個mongodb中可以建立多個數據庫。

MongoDB的默認數據庫為"db",該數據庫存儲在data目錄中。

MongoDB的單個實例可以容納多個獨立的數據庫,每一個都有自己的集合和權限,不同的數據庫也放置在不同的文件中。

"show dbs"?命令可以顯示所有數據的列表。

$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB > ./mongo MongoDB shell version: 3.0.6 connecting to: test > show dbs local 0.078GB test 0.078GB >

執行?"db"?命令可以顯示當前數據庫對象或集合。

$ ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test > ./mongo MongoDB shell version: 3.0.6 connecting to: test > db test >

運行"use"命令,可以連接到一個指定的數據庫。

> use local switched to db local > db local > use local switched to db local > db local >

以上實例命令中,"local" 是你要鏈接的數據庫。

在下一個章節我們將詳細講解MongoDB中命令的使用。

數據庫也通過名字來標識。數據庫名可以是滿足以下條件的任意UTF-8字符串。

  • 不能是空字符串("")。
  • 不得含有' '(空格)、.、$、/、\和\0 (空字符)。
  • 應全部小寫。
  • 最多64字節。

有一些數據庫名是保留的,可以直接訪問這些有特殊作用的數據庫。

  • admin: 從權限的角度來看,這是"root"數據庫。要是將一個用戶添加到這個數據庫,這個用戶自動繼承所有數據庫的權限。一些特定的服務器端命令也只能從這個數據庫運行,比如列出所有的數據庫或者關閉服務器。
  • local:?這個數據永遠不會被復制,可以用來存儲限于本地單臺服務器的任意集合
  • config: 當Mongo用于分片設置時,config數據庫在內部使用,用于保存分片的相關信息。

文檔

文檔是一組鍵值(key-value)對(即BSON)。MongoDB 的文檔不需要設置相同的字段,并且相同的字段不需要相同的數據類型,這與關系型數據庫有很大的區別,也是 MongoDB 非常突出的特點。

一個簡單的文檔例子如下:

{"site":"www.runoob.com", "name":"菜鳥教程"}"site":"www.runoob.com", "name":"菜鳥教程"}

下表列出了 RDBMS 與 MongoDB 對應的術語:

RDBMSMongoDB數據庫服務和客戶端
數據庫數據庫
表格集合
文檔
字段
表聯合嵌入文檔
主鍵主鍵 (MongoDB 提供了 key 為 _id )
Mysqld/Oraclemongod
mysql/sqlplusmongo

需要注意的是:

  • 文檔中的鍵/值對是有序的。
  • 文檔中的值不僅可以是在雙引號里面的字符串,還可以是其他幾種數據類型(甚至可以是整個嵌入的文檔)。
  • MongoDB區分類型和大小寫。
  • MongoDB的文檔不能有重復的鍵。
  • 文檔的鍵是字符串。除了少數例外情況,鍵可以使用任意UTF-8字符。
  • 文檔鍵命名規范:

    • 鍵不能含有\0 (空字符)。這個字符用來表示鍵的結尾。
    • .和$有特別的意義,只有在特定環境下才能使用。
    • 以下劃線"_"開頭的鍵是保留的(不是嚴格要求的)。

    集合

    集合就是 MongoDB 文檔組,類似于 RDBMS (關系數據庫管理系統:Relational Database Management System)中的表格。

    集合存在于數據庫中,集合沒有固定的結構,這意味著你在對集合可以插入不同格式和類型的數據,但通常情況下我們插入集合的數據都會有一定的關聯性。

    比如,我們可以將以下不同數據結構的文檔插入到集合中:

    {"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.runoob.com","name":"菜鳥教程","num":5}"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.runoob.com","name":"菜鳥教程","num":5}

    當第一個文檔插入時,集合就會被創建。

    合法的集合名

    • 集合名不能是空字符串""。
    • 集合名不能含有\0字符(空字符),這個字符表示集合名的結尾。
    • 集合名不能以"system."開頭,這是為系統集合保留的前綴。
    • 用戶創建的集合名字不能含有保留字符。有些驅動程序的確支持在集合名里面包含,這是因為某些系統生成的集合中包含該字符。除非你要訪問這種系統創建的集合,否則千萬不要在名字里出現$。 

    如下實例:

    db.col.findOne().col.findOne()

    capped collections

    Capped collections 就是固定大小的collection。

    它有很高的性能以及隊列過期的特性(過期按照插入的順序). 有點和 "RRD" 概念類似。

    Capped collections是高性能自動的維護對象的插入順序。它非常適合類似記錄日志的功能 和標準的collection不同,你必須要顯式的創建一個capped collection, 指定一個collection的大小,單位是字節。collection的數據存儲空間值提前分配的。

    要注意的是指定的存儲大小包含了數據庫的頭信息。

    db.createCollection("mycoll", {capped:true, size:100000}).createCollection("mycoll", {capped:true, size:100000})
    • 在capped collection中,你能添加新的對象。
    • 能進行更新,然而,對象不會增加存儲空間。如果增加,更新就會失敗 。
    • 數據庫不允許進行刪除。使用drop()方法刪除collection所有的行。
    • 注意: 刪除之后,你必須顯式的重新創建這個collection。
    • 在32bit機器中,capped collection最大存儲為1e9( 1X109)個字節。

    元數據

    數據庫的信息是存儲在集合中。它們使用了系統的命名空間:

    dbname.system.*.system.*

    在MongoDB數據庫中名字空間 .system.* 是包含多種系統信息的特殊集合(Collection),如下:

    集合命名空間描述
    dbname.system.namespaces列出所有名字空間。
    dbname.system.indexes列出所有索引。
    dbname.system.profile包含數據庫概要(profile)信息。
    dbname.system.users列出所有可訪問數據庫的用戶。
    dbname.local.sources包含復制對端(slave)的服務器信息和狀態。

    對于修改系統集合中的對象有如下限制。

    在{{system.indexes}}插入數據,可以創建索引。但除此之外該表信息是不可變的(特殊的drop index命令將自動更新相關信息)。

    {{system.users}}是可修改的。 {{system.profile}}是可刪除的。


    MongoDB 數據類型

    下表為MongoDB中常用的幾種數據類型。

    數據類型描述
    String字符串。存儲數據常用的數據類型。在 MongoDB 中,UTF-8 編碼的字符串才是合法的。
    Integer整型數值。用于存儲數值。根據你所采用的服務器,可分為 32 位或 64 位。
    Boolean布爾值。用于存儲布爾值(真/假)。
    Double雙精度浮點值。用于存儲浮點值。
    Min/Max keys將一個值與 BSON(二進制的 JSON)元素的最低值和最高值相對比。
    Array用于將數組或列表或多個值存儲為一個鍵。
    Timestamp時間戳。記錄文檔修改或添加的具體時間。
    Object用于內嵌文檔。
    Null用于創建空值。
    Symbol符號。該數據類型基本上等同于字符串類型,但不同的是,它一般用于采用特殊符號類型的語言。
    Date日期時間。用 UNIX 時間格式來存儲當前日期或時間。你可以指定自己的日期時間:創建 Date 對象,傳入年月日信息。
    Object ID對象 ID。用于創建文檔的 ID。
    Binary Data二進制數據。用于存儲二進制數據。
    Code代碼類型。用于在文檔中存儲 JavaScript 代碼。
    Regular expression正則表達式類型。用于存儲正則表達式。

    下面說明下幾種重要的數據類型。

    ObjectId

    ObjectId 類似唯一主鍵,可以很快的去生成和排序,包含 12 bytes,含義是:

    • 前 4 個字節表示創建?unix時間戳,格林尼治時間?UTC?時間,比北京時間早了 8 個小時
    • 接下來的 3 個字節是機器標識碼
    • 緊接的兩個字節由進程 id 組成 PID
    • 最后三個字節是隨機數

    MongoDB 中存儲的文檔必須有一個 _id 鍵。這個鍵的值可以是任何類型的,默認是個 ObjectId 對象

    由于 ObjectId 中保存了創建的時間戳,所以你不需要為你的文檔保存時間戳字段,你可以通過 getTimestamp 函數來獲取文檔的創建時間:

    > var newObject = ObjectId() > newObject.getTimestamp() ISODate("2017-11-25T07:21:10Z") var newObject = ObjectId() > newObject.getTimestamp() ISODate("2017-11-25T07:21:10Z")

    ObjectId 轉為字符串

    > newObject.str 5a1919e63df83ce79df8b38f newObject.str 5a1919e63df83ce79df8b38f

    字符串

    BSON 字符串都是 UTF-8 編碼。

    時間戳

    BSON 有一個特殊的時間戳類型用于 MongoDB 內部使用,與普通的 日期 類型不相關。 時間戳值是一個 64 位的值。其中:

    • 前32位是一個 time_t 值(與Unix新紀元相差的秒數)
    • 后32位是在某秒中操作的一個遞增的序數

    在單個 mongod 實例中,時間戳值通常是唯一的。

    在復制集中, oplog 有一個 ts 字段。這個字段中的值使用BSON時間戳表示了操作時間。

    BSON 時間戳類型主要用于 MongoDB 內部使用。在大多數情況下的應用開發中,你可以使用 BSON 日期類型。

    日期

    表示當前距離 Unix新紀元(1970年1月1日)的毫秒數。日期類型是有符號的, 負數表示 1970 年之前的日期。

    > var mydate1 = new Date() //格林尼治時間 > mydate1 ISODate("2018-03-04T14:58:51.233Z") > typeof mydate1 object var mydate1 = new Date() //格林尼治時間 > mydate1 ISODate("2018-03-04T14:58:51.233Z") > typeof mydate1 object > var mydate2 = ISODate() //格林尼治時間 > mydate2 ISODate("2018-03-04T15:00:45.479Z") > typeof mydate2 object var mydate2 = ISODate() //格林尼治時間 > mydate2 ISODate("2018-03-04T15:00:45.479Z") > typeof mydate2 object

    這樣創建的時間是日期類型,可以使用 JS 中的 Date 類型的方法。

    返回一個時間類型的字符串:

    > var mydate1str = mydate1.toString() > mydate1str Sun Mar 04 2018 14:58:51 GMT+0000 (UTC) > typeof mydate1str string var mydate1str = mydate1.toString() > mydate1str Sun Mar 04 2018 14:58:51 GMT+0000 (UTC) > typeof mydate1str string

    或者

    > Date() Sun Mar 04 2018 15:02:59 GMT+0000 (UTC) Date() Sun Mar 04 2018 15:02:59 GMT+0000 (UTC)

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的Windows 安装 MongoDB 和 可视化工具Robo3T的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。