C#操作MongoDB入門

来源:http://www.cnblogs.com/Ghazi/archive/2016/08/21/5793092.html
-Advertisement-
Play Games

聲明:此文是我學習MongoDB一周以來的經驗總結。一來給自己做一個備份,二來給和我一樣剛接觸MongoDB的小白分享一下,有什麼問題,給位請多擔待。 1、MongoDB安裝及配置 (1)下載: mongodb官網 https://www.mongodb.com/download-center 進入 ...


聲明:此文是我學習MongoDB一周以來的經驗總結。一來給自己做一個備份,二來給和我一樣剛接觸MongoDB的小白分享一下,有什麼問題,給位請多擔待。

 

1、MongoDB安裝及配置

  (1)下載:

      mongodb官網 https://www.mongodb.com/download-center

     

      進入官網下載頁,你會發現版本都是windows Server......  但是不要擔心,本人親測win0也可以用,所以放心大膽的下載就可以了。安裝過程比較簡單,下一步就可以了,就不多說了。

  (2)配置

    在“D:\MongoDB\bin(此目錄為bin文件夾所在目錄,與預設位置不同,後面命令行下的操作基本都在此目錄下進行)”目錄下新建“data”文件夾,它將會作為數據存放的根文件夾。

    在“D:\MongoDB\bin”目錄下新建“log”文件夾,作為日誌文件夾。

 

    配置Mongo服務端:

      以管理員身份打開CMD視窗,按照如下方式輸入命令:
      > d:
      > cd MongoDB

      >cd bin
      > mongod --dbpath "D:\MongoDB\data"

 

      然後在瀏覽器輸入:http://localhost:27017/,可以看到如下提示:


      You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number (可能會和這個不太一樣,有字就行)

      如此,MongoDB資料庫服務已經成功啟動了。

 

      封裝服務:

      還是運行cmd,進入bin目錄,執行下列命令
      >mongod -dbpath "D:\MongoDB\data" -logpath "D:\MongoDB\log\MongoDB.log" -install -serviceName "MongoDB"

      這裡--MongoDB.log就是開始建立的日誌文件,--serviceName "MongoDB" 服務名為MongoDB。

      接著啟動mongodb服務

      > D:\MongoDB>NET START MongoDB

      服務啟動成功後可以測試一下

      進入bin目錄,輸入mongo顯示如下信息,則服務啟動成功。

      E:\Program Files\MongoDB\bin>mongo
      MongoDB shell version: 3.2.9
      connecting to: test
      >

      至此安裝配置就完成了。

2、安裝MongoDB的C#驅動

  打開C#,新建項目,點擊 工具>Nuget程式包管理器>管理解決方案的Nuget程式包>聯機,

  在搜索欄搜索mongodb

  安裝MongoDB.Driver,MongoDB.Bson,MongoDB.Driver.Core三個程式包。

  然後添加引用

  using MongoDB.Driver;
  using MongoDB.Bson;

3、代碼

  接下來就是寫代碼了,以下是我寫的最簡單的增刪改查操作(水平有限,湊合看)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 using MongoDB.Driver;
11 using MongoDB.Bson;
12 
13 
14 namespace MongoDBTest
15 {
16     public partial class Form1 : Form
17     {
18 
19         public Form1()
20         {
21             InitializeComponent();
22         }
23 
24         private void Form1_Load(object sender, EventArgs e)
25         {
26             Mongo();
27         }
28 
29         public void Mongo()
30         {
31             //建立連接
32             var client = new MongoClient();
33             //建立資料庫
34             var database = client.GetDatabase("TestDb");
35             //建立collection
36             var collection = database.GetCollection<BsonDocument>("foo");
37 
38             var document = new BsonDocument
39             {
40                 {"name","MongoDB"},
41                 {"type","Database"},
42                 {"count",1},
43                 {"info",new BsonDocument{{"x",203},{"y",102}}}
44             };
45             //插入數據
46             collection.InsertOne(document);
47 
48             var count = collection.Count(document);
49             Console.WriteLine(count);
50 
51             //查詢數據
52             var document1 = collection.Find(document);
53             Console.WriteLine(document1.ToString());
54 
55             //更新數據
56             var filter = Builders<BsonDocument>.Filter.Eq("name", "MongoDB");
57             var update = Builders<BsonDocument>.Update.Set("name", "Ghazi");
58 
59             collection.UpdateMany(filter, update);
60 
61             //刪除數據
62             var filter1 = Builders<BsonDocument>.Filter.Eq("count", 101);
63 
64             collection.DeleteMany(filter1);
65 
66             BsonDocument document2 = new BsonDocument();
67             document2.Add("name", "MongoDB");
68             document2.Add("type", "Database");
69             document2.Add("count", "1");
70 
71             collection.InsertOne(document2);
72         }
73     }
74 }
View Code

 

4、參考資料

  http://mongodb.github.io/mongo-csharp-driver/2.2/getting_started/ 這個一定要靜下心去看,雖然是英文的,但是看代碼就行,還是不難的。

  http://www.cnblogs.com/qq75077027/category/441114.html 這個絕對是大神,講的很詳細

 

  


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

-Advertisement-
Play Games
更多相關文章
  • 該系列教程概述與目錄:http://www.cnblogs.com/chengyujia/p/5787111.html 一、知識點講解 當我們點擊系統自帶的按鈕時,按鈕的外觀會發生變化。上篇博文中我們畫了一個三角形按鈕,但點擊還不能變色,下麵我們就來實現點擊變色功能。從知識體繫上我們需要瞭解以下兩個 ...
  • 最近經過實際試驗,總結了InputType幾個常用取值表示的含義: 1、none, text, textVisiblePassword: 無任何輸入限制 2、textMultiLine: 允許多行輸入(預設EditText只允許單行輸入,即不換行) 3、textPassword: 無任何輸入限制,但 ...
  • 3、可能很多小伙伴是綠色的進入註冊表沒有ORACLE這個選項這就令人非常頭疼了。因為可能是32位的原因,你到註冊表的下麵看看HKEY_LOCAL_MACHINE->SOFTWARE->Wow6432Node看看有沒有ORACLE選項,如果還沒有那咱就添加一個;代碼如下建立二個尾碼名為AMERICAN ...
  • 前提 本文僅討論SQL Server查詢時, 對於非複合統計信息,也即每個欄位的統計信息只包含當前列的數據分佈的情況下, 在用多個欄位進行組合查詢的時候,如何根據統計信息去預估行數的。 利用不同欄位的統計信息做數據行數預估的演算法原理,以及SQL Server 2012和SQL Server 2014 ...
  • 一、前言 從20世紀90年代數字化醫院概念提出到至今的20多年時間,數字化醫院(Digital Hospital)在國內各大醫院飛速的普及推廣發展,並取得驕人成績。不但有數字化醫院管理信息系統(HIS)、影像存檔和通信系統(PACS)、電子病歷系統(EMR)和區域醫療衛生服務(GMIS)等成功實施與 ...
  • 昨天一個pgp加密盤壞了,東西全丟了。。。,我的筆記啊!我咋怎麼2呢。。 備份個腳本吧,方便以後手機查看,話說我都快忘記帳號密碼了 備註:腳步恢復時只能恢復到備份前的狀態,如果需要恢復到當前狀態,還需配合binlog,睡覺就這樣 ...
  • 非同步主從複製 主從部署步驟: 備份還原 使用mysqldump或者xtrabackup 把主庫現有基礎數據還原到從庫 授權 grant replication slave on *.* 給從庫一個複製binlog的賬號 配置複製,並啟動 從庫上配置複製信息,並指向master 查看主從複製信息 sh ...
  • 基於Centos7安裝過程中常用工具及操作技術總結回顧。 操作技巧: tab鍵,命令自動補全 xshell 預設: Ctrl + Insert (複製) Shift + Insert (粘貼) systemctl 服務操作命令: systemctl start postfix.service 動一個 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...