1. 程式人生 > >MongoDB學習筆記記錄(C#)

MongoDB學習筆記記錄(C#)

1,MongoDB資料庫構成:集合(表),文件(一行記錄),鍵(列),鍵值(列值)

C#新增引用:
MongoDB.Bson.dll
MongoDB.Driver.dll

2, 建立連線

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

myConDBStr="mongodb://192.168.0.3";//"mongodb://localhost";
// 遠端資料庫的IP字串//訪問本地資料庫字串
MongoClient myMC = new MongoClient(myConDBStr);
MongoServer myMS=myMC.GetServer(); MongoDatabase myMDB = myMS.GetDatabase("myDBName"); MongoCollection myMC=myMDB .GetCollection("myCollName");

3,插入資料1

BsonDocument myBD = new BsonDocument { {" myKey", "myKeyValue" } };//鍵,鍵值
myMC.Insert(myBD );//插入文件

4,插入資料2,更新多條

BsonDocument myBD = new BsonDocument ();
myBD.Set("myKey","myKeyValue");//多次使用此句,設定多列
myMC.Insert(myBD );//插入文件


5,更新資料1

IMongoQuery myQuery=Query.And(Query.EQ("myConditionkey","myConditionkeyValue"));//條件
IMongoUpdate myUpdate = MongoDB.Driver.Builders.Update.Set("key", "keyValue");//更新鍵以及鍵值內容
WriteConcernResult myWCR= myMC.Update(myQuery, myUpdate );//更新資料

6,更新資料2,更新多條

IMongoQuery myQuery= Query.And(Query.EQ
("myConditionkey", "myConditionkeyValue")); BsonDocument myBD = myMC.FindOneAs<BsonDocument>(myQuery); myBD.Set("myKey","myKeyValue");//多次使用此句,設定多列 myUpdate = MongoDB.Driver.Builders.Update.Replace(myBD); WriteConcernResult myWCR = myMC.Update(myQuery, myUpdate );

7,查詢對應文件的對應鍵的鍵值

string myResultStr="";
BsonDocument myBD = new BsonDocument();
myBD = myMC.FindOneAs<BsonDocument>(Query.EQ("myConditionkey", "myConditionKeyValue"));
if (myBD == null) myResultStr="Error";
else myResultStr= myBD .GetValue("myKey").ToString();

8,查詢集合所有文件

MongoCursor<BsonDocument> myMCBD = myMC.FindAllAs<BsonDocument>();
foreach (BsonDocument bd_i in myMCBD )//遍歷
{
.....
}

9,刪除特定的文件

IMongoQuery myQuery = Query.And(Query.EQ("myConditionKey", "myConditionKeyValue"));
WriteConcernResult myWCR= myMC.Remove(myQuery);

10,刪除資料庫,刪除集合

myMDB.Drop();//刪除資料庫
muMC.Drop();//刪除集合

11,使用DataGridView顯示MongoDB相應的集合
法1:
首先建立和相應集合相同鍵值結構的類
(假定有資料庫”MyMongoDB”,有集合”MyMongoColl”,集合有鍵(”_id”,”myNameKeyStr”,”myAgeKeyInt”,”MySexStr”)
DataGridView myDGV= new DataGridView();

Class:

public class MyMongoDBCollClass
{
    public ObjectId _id;
    public string myNameKeyStr{get;set;};
    public int myAgeKeyInt{get;set;};
    public string MySexStr{get;set;};
}
.........

MyMongoDBCollClass myMMDBC=new MyMongoDBCollClass ();
List<MyMongoDBCollClass> 
myConDBStr="mongodb://localhost";
//訪問本地資料庫字串
MongoClient myMC = new MongoClient(myConDBStr);
MongoServer myMS=myMC.GetServer();
MongoDatabase myMDB = myMS.GetDatabase("MyMongoDB");
MongoCollection myMC=myMDB .GetCollection("MyMongoColl");

List<MyMongoDBCollClass> myListMMDBC=myMC.FindAllAs<MyMongoDBCollClass>().ToList<MyMongoDBCollClass>();
myDGV.DataSource=myListMMDBC;//

12,獲得當前資料庫中所有的集合名

.........
MongoDatabase myMDB = myMS.GetDatabase("MyMongoDB");
IEnumerable<string> myIList = myMDB.GetCollectionNames();