데이터 베이스 MySQL 튜토리얼 c#链接mongDB集群实战开发3

c#链接mongDB集群实战开发3

Jun 07, 2016 pm 03:56 PM
실제 전투 개발하다 링크 무리

c# 链接mongDB集群 一 了解mongdb 二 部署集群 三 C#链接mongdb 完成测试 C#链接mongdb 完成测试 此章节继续我们上一章节将的我们开始用程序去链接mondbdb,大家都知道我们链接sqlserver其实用的是微软自己写的驱动。它已经封装了一些对象,要我们去链接。但

c# 链接mongDB集群

一 了解mongdb

二 部署集群

三 C#链接mongdb 完成测试 

C#链接mongdb 完成测试

此章节继续我们上一章节将的我们开始用程序去链接mondbdb,大家都知道我们链接sqlserver其实用的是微软自己写的驱动。它已经封装了一些对象,要我们去链接。但是我们链接mondbdb 同样需要一些对象,这个mongdb官网有说明,可以自己去看看或者直接下载我的这里下载 或者在第一章节有些伙伴们已经下载好了

开发驱动文件夹 在 mongo-csharp-driver-master\mongo-csharp-driver-master\src SRC下面看到驱动项目这里注意,我下载是vs2012的项目,同学们可以根据自己的需要替换net framework 版本

打开项目之后看到 如图所示

\

编译项目得到

MongoDB.Bson.dll

MongoDB.Driver.dll

创建项目,项目配置文件如下

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="LogLevel" value="trace" />
    <add key="LogPath" value="E:\Tools\mongdb\FrmMongDB\FrmMongDB\logs" />
    
    <!--MongDb配置begin-->
    <add key="MongReplicaSetName" value="zuomm"/><!--设置副本集名称-->
    <add key="MongoServerAddress" value="127.0.0.1:1111|127.0.0.1:2222|127.0.0.1:3333"/><!--mongdb集群列表-->
    <add key="TimeOut" value="60"/><!--mongdb集群链接超时时间-->
    <!--MongDb配置end-->
  </appSettings>

</configuration>
로그인 후 복사

LogLevel 为自定义 日记级别 ,这个后面看我的代码

LogPath 为日志路径

MongReplicaSetName 为副本集名称,其实就是建立集群的时候取的名字。

MongoServerAddress 为集群机器ip列表,我这里是自己的机器开了不同的端口来区别,你可以改成局域网ip

TimeOut 超时时间,默认貌似是3秒,我这里设置60秒方便调试

链接集群主要代码

 /// <summary>
        /// 取得数据库连接字符串
        /// </summary>
        /// <param name="connName">App.Config文件中AppSettings节中 AppSettings 对应的name</param>
        /// <returns>数据库连接字符串</returns>
        private static MongoServer GetConnStr()
        {
            List<MongoServerAddress> servers = new List<MongoServerAddress>();
            string reg = @"^(?&#39;server&#39;\d{1,}.\d{1,}.\d{1,}.\d{1,}):(?&#39;port&#39;\d{1,})$";
            string[] ServerList = ConfigurationManager.AppSettings["MongoServerAddress"].Trim().Split(&#39;|&#39;);
            foreach (string server in ServerList)
            {
                MatchCollection mc = Regex.Matches(server, reg);
                if (mc != null && mc.Count > 0)
                    servers.Add(new MongoServerAddress(mc[0].Groups["server"].ToString(), Convert.ToInt32(mc[0].Groups["port"].ToString())));
            }

            if (servers == null || servers.Count < 1)
                return null;

            MongoClientSettings set = new MongoClientSettings();

            set.Servers = servers;

            set.ReplicaSetName = ConfigurationManager.AppSettings["MongReplicaSetName"].Trim();//设置副本集名称

            int TimeOut =ConvertUtil.ParseInt(ConfigurationManager.AppSettings["TimeOut"].Trim());//设置副本集名称

            set.ConnectTimeout = new TimeSpan(0, 0, 0, TimeOut, 0);//设置超时时间为5秒

            set.ReadPreference = new ReadPreference(ReadPreferenceMode.SecondaryPreferred);

            MongoClient client = new MongoClient(set);

            return client.GetServer();
        }
set.ReadPreference = new ReadPreference(ReadPreferenceMode.SecondaryPreferred); 这句代码可以根据自己需要修改。
로그인 후 복사

其他没有什么注意的地方

数据插入mongdb代码

    /// <summary>
        /// MongDB 批量insert语句
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="_databaseName">数据库名称</param>
        /// <param name="_collectionName">表名称</param>
        /// <param name="entitys">对象</param>
        /// <param name="errorMsg">返回错误</param>
        /// <returns></returns>
        public static IEnumerable<SafeModeResult> Execute<T>(string _databaseName, string _collectionName, IEnumerable<T> entitys, out string errorMsg)
        {
            errorMsg = string.Empty;
            //取得数据库连接
            IEnumerable<SafeModeResult> result = null;

            try
            {
                if (null == entitys)
                    return null;
                //获取连接的服务器集群
                _server = GetConnStr();

                //获取数据库或者创建数据库(不存在的话)。
                MongoDatabase database = _server.GetDatabase(_databaseName);

                using (_server.RequestStart(database))//开始连接数据库。
                {
                    MongoCollection<T> myCollection = database.GetCollection<T>(_collectionName);
                    result = myCollection.InsertBatch<T>(entitys);
                }
            }
            catch (Exception ex)
            {
                errorMsg = ex.ToString();
            }
            finally
            {
            }

            //记录日志
            if (!string.IsNullOrEmpty(errorMsg))
            {
                LogUtil.Error("CommonLib.DbAccess.MongDBAccess", "Execute", errorMsg + "\n\r\t");
            }

            return result;
        }
로그인 후 복사

读取mongdb数据代码

/// <summary>
        /// 如果不清楚具体的数量,一般不要用这个函数。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="collectionName"></param>
        /// <returns></returns>
        public static List<T> GetAll<T>(string _databaseName, string collectionName,out string errorMsg)
        {
            errorMsg = string.Empty;
            List<T> result = new List<T>();
            try
            {
                //获取连接的服务器集群
                _server = GetConnStr();

                //获取数据库或者创建数据库(不存在的话)。
                MongoDatabase database = _server.GetDatabase(_databaseName);
               
                using (_server.RequestStart(database))//开始连接数据库。
                {
                    MongoCollection<T> myCollection = database.GetCollection<T>(collectionName);
                    result.AddRange(myCollection.FindAll());
                }
            }
            catch (Exception ex )
            {
                errorMsg = ex.ToString();
            }
            //记录日志
            if (!string.IsNullOrEmpty(errorMsg))
            {
                LogUtil.Error("CommonLib.DbAccess.MongDBAccess", "GetAll", errorMsg + "\n\r\t");
            }
            return result;
        } 
로그인 후 복사

以上是插入和读取代码。

后面运行效果如下

\

我这里插入了10w条数据 人然后读取10w条数据。效率比sqlserver是快很多。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

115://로 시작하는 링크를 다운로드하는 방법은 무엇입니까? 다운로드 방법 소개 115://로 시작하는 링크를 다운로드하는 방법은 무엇입니까? 다운로드 방법 소개 Mar 14, 2024 am 11:58 AM

최근 많은 사용자들이 편집자에게 115://로 시작하는 링크를 다운로드하는 방법을 문의해 왔습니다. 115://로 시작하는 링크를 다운로드하려면 115 브라우저를 사용해야 합니다. 115 브라우저를 다운로드한 후 아래 편집기에서 편집한 다운로드 튜토리얼을 살펴보겠습니다. 115://로 시작하는 링크를 다운로드하는 방법을 소개합니다. 1. 115.com에 로그인하고 115 브라우저를 다운로드하여 설치합니다. 2. 115 브라우저 주소 표시줄에 chrome://extensions/를 입력하고 확장 센터에 들어가서 Tampermonkey를 검색한 후 해당 플러그인을 설치합니다. 3. 115 브라우저 주소창에 Grease Monkey 스크립트: https://greasyfork.org/en/를 입력하세요.

WeChat 비디오 계정 링크를 얻는 방법은 무엇입니까? WeChat 비디오 계정에 제품 링크를 추가하는 방법은 무엇입니까? WeChat 비디오 계정 링크를 얻는 방법은 무엇입니까? WeChat 비디오 계정에 제품 링크를 추가하는 방법은 무엇입니까? Mar 22, 2024 pm 09:36 PM

WeChat 생태계의 일부로서 WeChat 비디오 계정은 점차 콘텐츠 제작자와 판매자를 위한 중요한 홍보 도구가 되었습니다. 이 플랫폼에서 비디오 계정에 대한 링크를 얻는 것은 콘텐츠를 공유하고 전파하는 데 중요합니다. 다음에서는 WeChat 동영상 계정 링크를 얻는 방법과 동영상 계정에 제품 링크를 추가하여 콘텐츠 전파 효과를 높이는 방법을 자세히 소개합니다. 1. WeChat 비디오 계정 링크를 얻는 방법은 무엇입니까? WeChat 비디오 계정에 비디오를 게시하면 시스템이 자동으로 비디오 링크를 생성합니다. 작성자는 공유 및 배포를 용이하게 하기 위해 게시 후 링크를 ​​복사할 수 있습니다. WeChat 비디오 계정에 로그인한 후 비디오 계정의 홈페이지를 탐색할 수 있습니다. 홈 페이지에는 각 비디오에 해당 링크가 포함되어 있어 직접 복사하거나 공유할 수 있습니다. 3. 영상 계정 검색: 위챗 검색창에 영상 계정 이름을 입력하세요

권장되는 AI 지원 프로그래밍 도구 4가지 권장되는 AI 지원 프로그래밍 도구 4가지 Apr 22, 2024 pm 05:34 PM

이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

비디오 링크에 대한 요구 사항은 무엇입니까? 영상 계정을 상품과 어떻게 연결하나요? 비디오 링크에 대한 요구 사항은 무엇입니까? 영상 계정을 상품과 어떻게 연결하나요? Mar 07, 2024 pm 01:13 PM

짧은 동영상 플랫폼의 인기로 인해 점점 더 많은 제작자가 동영상 계정을 사용하여 콘텐츠를 제작하고 홍보하기 시작했습니다. 비디오 계정은 개인의 재능을 보여줄 수 있을 뿐만 아니라 제품 링크를 통해 상업적인 수익화를 실현할 수도 있습니다. 단, 동영상 계정에 링크를 추가하려면 특정 조건을 충족해야 합니다. 1. 동영상 링크 요구사항은 무엇인가요? 비디오 계정 인증은 비디오 계정에 링크를 추가하기 위한 전제 조건입니다. 현재 Douyin, Kuaishou 등 주요 단편 동영상 플랫폼에서는 인증 서비스를 제공하고 있으며, 주로 개인 인증과 기관 인증의 두 가지 유형이 있습니다. 개인인증의 경우 실명정보를 제출해야 하며, 기관인증의 경우 관련 기업이나 단체로부터 인증자료를 제공받아야 합니다. 인증 완료 후, 사용자는 자신의 비디오 계정에 링크를 추가하여 계정의 신뢰성과 권한을 강화할 수 있습니다. 영상 링크 중 하나

최고의 AI 프로그래머는 누구일까요? Devin, Tongyi Lingma 및 SWE 에이전트의 잠재력을 살펴보세요. 최고의 AI 프로그래머는 누구일까요? Devin, Tongyi Lingma 및 SWE 에이전트의 잠재력을 살펴보세요. Apr 07, 2024 am 09:10 AM

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 알아보세요. Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 알아보세요. Mar 28, 2024 pm 10:00 PM

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

Doudian에 연결하는 방법 - Doudian에 연결하는 방법 튜토리얼 Doudian에 연결하는 방법 - Doudian에 연결하는 방법 튜토리얼 Mar 06, 2024 am 08:40 AM

많은 친구들이 아직 Doudian에 링크하는 방법을 모르므로 아래 편집자가 Doudian에 링크하는 방법에 대한 튜토리얼을 설명합니다. 필요한 경우 서둘러서 살펴보는 것이 모든 사람에게 도움이 될 것이라고 믿습니다. 1단계: 먼저 Doudian 컴퓨터 터미널을 열고 그림과 같이 왼쪽 열에 "Window Product Management"를 입력합니다. 2단계: 그런 다음 그림과 같이 오른쪽 상단에 있는 "제품 추가"를 클릭하세요. 3단계: 그런 다음 그림에 표시된 대로 제품 링크를 복사하여 붙여넣습니다. 4단계: 그런 다음 그림과 같이 "추가 확인"을 클릭하세요. 5단계: 마지막으로 소개, 사진 및 기타 정보를 입력한 후 그림과 같이 "확인"을 클릭하여 Douyin에 연결합니다. 위 내용은 편집자가 알려드린 Doudian에 링크를 추가하는 방법에 대한 전체 내용입니다. 모든 분들께 도움이 되길 바랍니다.

PHP 실용: 피보나치 수열을 빠르게 구현하는 코드 예제 PHP 실용: 피보나치 수열을 빠르게 구현하는 코드 예제 Mar 20, 2024 pm 02:24 PM

PHP 연습: 피보나치 수열을 빠르게 구현하기 위한 코드 예제 피보나치 수열은 수학에서 매우 흥미롭고 일반적인 수열로 다음과 같이 정의됩니다. 첫 번째와 두 번째 숫자는 0과 1이고, 세 번째부터 숫자로 시작하여 각 숫자가 나옵니다. 이전 두 숫자의 합입니다. 피보나치 수열의 처음 몇 숫자는 0,1,1.2,3,5,8,13,21 등입니다. PHP에서는 재귀와 반복을 통해 피보나치 수열을 생성할 수 있습니다. 아래에서는 이 두 가지를 보여드리겠습니다.

See all articles