MongoDB 의 C# Driver 는 1 버전과 2 버전이 있습니다.
1. 으로 시작하는 것은 예전과 같은 동기방식 (synchronous) 입니다.
2. 으로 시작하는 것은 비동기방식 (asynchronous) 입니다.
MongoDB 공식 홈페이지인 https://www.mongodb.org 에는 강려크 하게 2.0 버전에 대한 Driver 소개와 사용법을 소개하면서 그렇게 하도록 사용자를 푸시하고 있는데, 말리시면 안됩니다. 거기에 말리면 저 같이 시간 낭비만 죽도록 하고, 아~ 이건 잘 안되는구나. 란 것만 몸소 체험 할 수 있습니다. 물론 제 내공이 비동기 방식을 연마하기에 부족한 것일 수도 있겠죠.
비동기 방식으로 DML 쪽 작업 (insert, update, remove)은 잘되던데, query 수행은 제대로 값을 못가져 오더라구요.
1.0 대의 Driver로는 모든것이 쾌적하게 잘됩니다. 아주 잘됩니다.
아무래도 MongoDB 자체가 Big Data를 다루는게 주 목적이다 보니 async 로 작업하는게 좋겠지만, 아직까지 해당 Driver를 도입하기에는 제대로 구현되지 않았다고 봐야 겠네요.
그래서 결국은 1.0 버전대의 Driver를 다운받아서 자료를 찾아가면서 정리하였습니다.
* C# Driver 1.10.1 설치
다운로드 : https://github.com/mongodb/mongo-csharp-driver/releases
에서 1.10.1 을 다운로드 받으시면 됩니다.

압축을 푸셔서 MongoDB.Bson.dll , MongoDB.Driver.dll 2개의 파일을 사용할 project에서 references 에 추가하시면 됩니다.
* 접속
긴 설명 필요없이 그냥 아래와 같이 하시면 됩니다.
string connectionString = "mongodb://localhost"; // connection string : "mongodb://sys:mongo@localhost:27017/test"
MongoClient client = new MongoClient(connectionString);
MongoClient client = new MongoClient(connectionString);
MongoServer server = client.GetServer();
MongoDatabase database = server.GetDatabase("test");
예제라서 앞에 타입형식을 다 적어주었지만, 그냥 var 로 선언해서 사용하는 경우가 많습니다.
뒤에 포스팅에서 다루겠지만, 정형화된 document를 다루는 경우는 타입을 다 적어주는 것이 가능하지만, 비정형화된 document를 다룰때 하나하나 타입을 다 외워서 적어주는건 힘듭니다.
꼭 적어야 겠다면 일단 var 로 적어서 코드를 작성 후에 제대로 동작하는 것을 확인 한 후에 해당 객체에 마우스를 올리면 Visual Studio가 진철하게 타입을 알려줍니다. 그것을 확인 한 다음에 앞에 var을 지우시고 해당 타입으로 적어주시면 됩니다.
string connectionString = "mongodb://localhost"; // connection string : "mongodb://sys:mongo@localhost:27017/test"
var client = new MongoClient(connectionString);
var client = new MongoClient(connectionString);
var server = client.GetServer();
var database = server.GetDatabase("test");
아니면 그냥 한줄로도 가능하구요.
var database = new MongoClient("mongodb://localhost").GetServer().GetDatabase("test");
다음 포스팅에서 정형화된 document에 대해서 select, insert, update, delete 하는 법에 대해서 다루겠습니다.
* 예제코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using MongoDB.Bson; | |
using MongoDB.Driver; | |
using MongoDB.Driver.Builders; | |
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
string connectionString = "mongodb://localhost"; // connection string : "mongodb://sys:mongo@localhost:27017/test" | |
MongoClient client = new MongoClient(connectionString); | |
MongoServer server = client.GetServer(); | |
MongoDatabase database = server.GetDatabase("test"); | |
} | |
} |
댓글 없음:
댓글 쓰기