1.前言
mongoDB是一種NoSQL的文件型導向資料庫,操作資料庫的方式與傳統關聯式資料庫有些不同。

2.說明
操作此範例前,需要先安裝mongoDB及C#的driver,最新版的軟體可在下列網址下載。
http://www.mongodb.org/
此範例的軟體版本為
database: mongodb-win32-x86_64-2008plus-2.4.6
driver: CSharpDriver-1.8.2

加入參考:
MongoDB.Bson.dll
MongoDB.Driver.dll

加入命名空間:

using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;

開啟資料庫連線

private MongoServer OpenConn(string Server)
{
	string cnstr = string.Format("mongodb://" + Server);
	MongoClient client = new MongoClient(cnstr);
	MongoServer server = client.GetServer();
	if (server.State == MongoServerState.Connected) server.Disconnect();
	server.Connect();
	return server;
}

插入資料

private void InsertData(string Server, string DatabaseName, string CollectionName, BsonDocument Document)
{
	MongoServer server = OpenConn(Server);
	MongoDatabase db = server.GetDatabase(DatabaseName);
	MongoCollection col = db.GetCollection(CollectionName);
	BsonDocument doc = new BsonDocument(Document);
	using (server.RequestStart(db))
	{
		col.Insert(doc);
	}
	server.Disconnect();
}

讀取資料

private string GetData(string Server, string DatabaseName, string CollectionName)
{
	string json = "";
	MongoServer server = OpenConn(Server);
	MongoDatabase db = server.GetDatabase(DatabaseName);
	MongoCollection col = db.GetCollection(CollectionName);
	var query = col.FindAll();
	foreach (var doc in query)
	{
		json += doc.ToJson();
	}            
	server.Disconnect();
	return json;
}

3.應用

//建立資料庫,資料表及插入資料
BsonDocument doc = new BsonDocument { { "name", "alex" }, { "age", 18 } };
//BsonDocument doc = new BsonDocument { { "name", "cathy" }, { "age", 16 } };
//BsonDocument doc = new BsonDocument { { "name", "david" }, { "age", 17 } };
InsertData("localhost", "school", "namelist", doc);

//讀取資料,Json格式
string data = GetData("localhost", "school", "namelist");
Console.WriteLine(data);
arrow
arrow
    文章標籤
    C# mongoDB Json
    全站熱搜

    西夏普 發表在 痞客邦 留言(0) 人氣()