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();