程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中應用1.7版本驅動操作MongoDB簡略例子

C#中應用1.7版本驅動操作MongoDB簡略例子

編輯:C#入門知識

C#中應用1.7版本驅動操作MongoDB簡略例子。本站提示廣大學習愛好者:(C#中應用1.7版本驅動操作MongoDB簡略例子)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中應用1.7版本驅動操作MongoDB簡略例子正文



//創立數據庫鏈接
//在1.7的版本驅動中如許寫是會報 MongoServer辦法已過時的
//MongoServer server =  MongoDB.Driver.MongoServer.Create(strconn); 


//帶有效戶名,暗碼的以下寫法,不帶的則直接ip+端口便可以
const string connectionString = "mongodb://city:[email protected]:27017";
//獲得一個客戶端對象的援用                    GetServer()對辦事器對象的援用          
var Server = new MongoClient(connectionString).GetServer();
//到一個數據庫對象的援用
var client = Server.GetDatabase("City");
//對一組對象的援用
var collection = client.GetCollection<citys>("citys");

//拔出一個 實體
for (int i = 0; i < dt.Rows.Count; i++)
{
    collection.Insert(new citys
    {
        province = dt.Rows[i][0].ToString(),
        city = dt.Rows[i][1].ToString(),
        county = dt.Rows[i][2].ToString(),
        areacode = "0" + dt.Rows[i][3].ToString(),
        postalcode = dt.Rows[i][3].ToString()
    });
}

以下是git上的贊助文檔  地址是:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
將一個援用添加到c#司機dll

右鍵單擊 援用 文件夾在Visual Studio的處理計劃 探險家和選擇 添加 參考…… 。 導航到文件夾 c#驅動法式dll被裝置並添加一個援用以下 dll:

    MongoDB.Bson.dll
    MongoDB.Driver.dll

作為一種替換辦法可使用 NuGet 擔保理器添加c# 驅動法式包來您的處理計劃。
添加所需的 應用 語句

作為一個最低須要應用語句以下:

using MongoDB.Bson;
using MongoDB.Driver;

另外,您會常常添加一個或多個應用 聲明:

using MongoDB.Driver.Builders;
using MongoDB.Driver.GridFS;
using MongoDB.Driver.Linq;

還有其他稱號空間,只會在特別的須要 用例。
獲得一個客戶端對象的援用

最簡略的辦法取得一個客戶對象的援用是應用 銜接字符串:

var connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);

假如你想將客戶端對象存儲在一個全局變量。 MongoClient 是線程平安的。
對辦事器對象的援用

要從客戶端到辦事器對象的援用對象,寫 如許的:

var server = client.GetServer();

到一個數據庫對象的援用

去到一個數據庫對象的援用從辦事器對象,寫 如許的:

var database = server.GetDatabase("test"); // "test" is the name of the database

假如您應用多個數據庫,挪用 GetDatabase 再次為每一個 您想要應用數據庫。
BsonDocument 對象模子與您本身的域類

有兩種辦法可以處置聚集:

    應用 BsonDocument 對象模子
    應用本身的域類

您將應用 BsonDocument 當數據對象模子 任務是如斯的自在情勢,它將是艱苦的或弗成能的 界說的域類。

由於它是如斯輕易應用本身的域類 疾速啟動將假定你要如許做。 c#驅動法式 供給,他們可以處置您的域類:

    有一個無參數的結構函數
    界說公共讀/寫數據的字段或屬性 存儲在數據庫中

這些需求在實質上是雷同的。net的實行 XmlSerializer。

另外,假如您的域類將被用作根 文檔必需包括一個 ID 字段或屬性(平日是定名 ID 雖然你可以籠罩,假如需要)。 平日情形下, ID 將類型的 ObjectId ,但沒無限制的類型 的成員。

斟酌上面的類界說:

public class Entity
{
    public ObjectId Id { get; set; }

    public string Name { get; set; }
}

對一組對象的援用

你會獲得一個包括援用聚集 實體 文件是如許的:

// "entities" is the name of the collection
var collection = database.GetCollection<Entity>("entities");

拔出文檔

拔出一個 實體 :

var entity = new Entity { Name = "Tom" };
collection.Insert(entity);
var id = entity.Id; // Insert will set the Id if necessary (as it was in this example)

找到一個現有的文檔

在這個示例中,我們將讀回 實體 假定我們曉得 ID 值:

var query = Query<Entity>.EQ(e => e.Id, id);
var entity = collection.FindOne(query);

查詢<單元> .EQ 應用 查詢< T > 構建器類來構建 查詢。 lambda表達式 E = > e.Id 是翻譯 _ID 。 這是 字段的稱號存儲在數據庫中。

請留意

平日的稱號字段在數據庫中是完整雷同的 正如它的名字域類中的字段或屬性,然則 ID 是一個破例,映照到嗎 _ID 在數據庫中。

其他查詢操作符包含: GT , 一種 , 在 , LT , LTE , 鄰近 , 西南 , 和 , 或 (和其他一些更多 專業的)。
保留一個文檔

你可以保留更改現有的文檔以下:

entity.Name = "Dick";
collection.Save(entity);

更新現有的文檔

另外一種選擇 保留 是 更新 。 所分歧的是, 保留 將全部文檔發送回辦事器,然則 更新 發的變更。 例如:

var query = Query<Entity>.EQ(e => e.Id, id);
var update = Update<Entity>.Set(e => e.Name, "Harry"); // update modifiers
collection.Update(query, update);

上面的例子應用了 更新< T > 構建器輕松地構建更新 潤飾符。
刪除一個現有的文檔

刪除一個現有的文檔聚集你寫:

var query = Query<Entity>.EQ(e => e.Id, id);
collection.Remove(query);

你不須要挪用銜接或斷開銜接

c#司機有一個銜接池應用銜接到辦事器 效力。 不須要德律風 銜接 或 斷開 ; 讓司機照料銜接(挪用 銜接 是有害的,然則打德律風呢 斷開 是欠好的,由於它封閉 銜接池中的銜接)。
完全的示例法式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

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

namespace ConsoleApplication1
{
    public class Entity
    {
        public ObjectId Id { get; set; }
        public string Name { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var connectionString = "mongodb://localhost";
            var client = new MongoClient(connectionString);
            var server = client.GetServer();
            var database = server.GetDatabase("test");
            var collection = database.GetCollection<Entity>("entities");

            var entity = new Entity { Name = "Tom" };
            collection.Insert(entity);
            var id = entity.Id;

            var query = Query<Entity>.EQ(e => e.Id, id);
            entity = collection.FindOne(query);

            entity.Name = "Dick";
            collection.Save(entity);

            var update = Update<Entity>.Set(e => e.Name, "Harry");
            collection.Update(query, update);

            collection.Remove(query);
        }
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved