程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#開發接口——MongoDB,

C#開發接口——MongoDB,

編輯:C#入門知識

C#開發接口——MongoDB,


MongoDB提供的C#開發接口,先從下載開始,然後是插入、查詢、更新。

先要開啟MongoDB服務。

下載http://github.com/mongodb/mongo-csharp-driver/downloads.每個版本會有兩個驅動模式,一個是.msi,一個是.zip。

VS:2013,MongoDB:3.2.0

打開VS2013,新建控制台程序,增加下載好的兩個引用(MongoDB.Bson.dll,MongoDB.driver.dll)

1、插入數據

static void Main(string[] args)
{
//數據庫連接字符串
string connectionString = "mongodb://127.0.0.1:27017";
//得到一個對象實例的連接
var client = new MongoClient(connectionString);
var server = client.GetServer();
//MongoServer server = MongoServer.Create(connectionString);
//指定安全證書
MongoCredentials credential = new MongoCredentials("wander", "123456");
//獲得一個"mongoDB"連接對象
MongoDatabase mydb = server.GetDatabase("test", credential);


//聲明一個Collection對象
MongoCollection coll = mydb.GetCollection("t1");
//申請一個文檔對象,用於存儲數據
BsonDocument info = new BsonDocument
{
{"x",203},
{"y",102},
{"count",1}
};
//申請一個文檔對象,用於存儲數據,且用info作為它的嵌入式文檔
BsonDocument doc = new BsonDocument
{
{"name","MongoDB"},
{"type","database"},
{"count",1},
{"info",info}
};
//調用collection的insert方法,將數據永久存儲到磁盤上
coll.Insert(doc);


}

查詢數據

static void Main(string[] args)
{
//數據庫連接字符串
string connectionString = "mongodb://127.0.0.1:27017";
//得到一個對象實例的連接
var client = new MongoClient(connectionString);
var server = client.GetServer();
//MongoServer server = MongoServer.Create(connectionString);
//指定安全證書
MongoCredentials credential = new MongoCredentials("wander", "123456");
//獲得一個"mongoDB"連接對象
MongoDatabase mydb = server.GetDatabase("test", credential);


//聲明一個Collection對象
MongoCollection<BsonDocument> coll = mydb.GetCollection<BsonDocument>("t1");
//獲取t1表的第一條數據
BsonDocument bsdoc = (BsonDocument)coll.FindOne();
Console.WriteLine(bsdoc);
Console.ReadLine();
}

//更新數據
static void Main(string[] args)
{
//數據庫連接字符串
string connectionString = "mongodb://127.0.0.1:27017";
//得到一個對象實例的連接
var client = new MongoClient(connectionString);
var server = client.GetServer();
//MongoServer server = MongoServer.Create(connectionString);
//指定安全證書
MongoCredentials credential = new MongoCredentials("wander", "123456");
//獲得一個"mongoDB"連接對象
MongoDatabase mydb = server.GetDatabase("test", credential);


//聲明一個Collection對象
MongoCollection<BsonDocument> coll = mydb.GetCollection<BsonDocument>("t1");
//定義一個查詢對象,相當於SQL中的where語句
var queryDoc = new QueryDocument { { "name", "MongoDB" } };
//定義一個更新對象,相當於SQL中的set語句
var updateDoc = new UpdateDocument { { "$set", new BsonDocument("type", "NoSQL") } };

//將查詢對象和更新對象作為參數傳遞給Update來完成更新
coll.Update(queryDoc, updateDoc);
Console.ReadLine();
}

在操作上述代碼時,我遇到一個錯誤,錯誤內容是

{"Command 'authenticate' failed: auth failed (response: { \"ok\" : 0.0, \"errmsg\" : \"auth failed\", \"code\" : 18 })"}
查找原因:在Shell裡面創建用戶,授權用戶後,顯示是成功,執行程序後依舊有問題。
解決辦法:
use admin
show collections
db.system.users.remove({});
de.system.version.remove({});

db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })關鍵的一步
用戶已清空了,現在要新建立用後,從3.2.0開始創建用戶方式修改為:
use test
db.createUser(
   {
     user: "wander",
     pwd: "123456",
     roles: [ ]
   }
)
db.auth("wander","123456");

問題解決了。

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