MongoDB學習筆記記錄(C#)
阿新 • • 發佈:2018-12-24
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();