(以下内容为收集整理).Net在C#中使用官方驱动操作MongoDB

(以下内容为收集整理)

下载安装

想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动。C#版的驱动有很多种,如官方提供的,samus。 实现思路大都类似。这里我们先用官方提供的mongo-csharp-driver ,当前版本为1.4.1
下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads
编译之后得到两个dll
MongoDB.Driver.dll:顾名思义,驱动程序
MongoDB.Bson.dll:序列化、Json相关
然后在我们的程序中引用这两个dll。
 

连接数据库

请先确认您的MongoDB已经开启了。


数据库连接字符串:

const string strconn = "mongodb://127.0.0.1:27017";

数据库名称

const string dbName = "mytestDB";

创建数据库链接

MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);

获得数据库

MongoDatabase db = server.GetDatabase(dbName);

插入数据:
好了数据打开了,现在得添加数据了,我们要添加一条User“记录”到 Users集合中。
在MongoDB中没有表的概念,所以在插入数据之前不需要创建表。
但我们得定义好要插入的数据的模型Users
Users.cs:  

 public class Users  

 {        public ObjectId _id;//BsonType.ObjectId 这个对应了 MongoDB.Bson.ObjectId

          public string Name { get; set; }

         public string Sex { set; get; }    }
_id 属性必须要有,否则在更新数据时会报错:“Element '_id' does not match any field or property of class”。
好,现在看看添加数据的代码怎么写:
public void Insert()

{    //创建数据库链接

MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    

//获得数据库

MongoDatabase db = server.GetDatabase(dbName);    

Users users = new Users();    

users.Name = "xiaoxiang";    

users.Sex = "man";    

//获得Users集合,如果数据库中没有,先新建一个

MongoCollection col = db.GetCollection("Users");    

//执行插入操作

col.Insert<Users>(users);}

更新数据
public void Update(){    

//创建数据库链接

MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    

//获得数据库

MongoDatabase db = server.GetDatabase(dbName);  

 //获取Users集合

MongoCollection col = db.GetCollection("Users");  

 //定义获取“Name”值为“xiaoxiang”的查询条件

var query = new QueryDocument { { "Name", "xiaoxiang" } };    

//定义更新文档

var update = new UpdateDocument { { "$set", new QueryDocument { { "Sex", "wowen" } } } };    

//执行更新操作

col.Update(query, update);}

删除数据
public void Delete(){

   //创建数据库链接

MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    

//获得数据库

MongoDatabase db = server.GetDatabase(dbName);    

//获取Users集合

MongoCollection col = db.GetCollection("Users");  

 //定义获取“Name”值为“xiaoxiang”的查询条件

var query = new QueryDocument { { "Name", "xiaoxiang" } };  

 //执行删除操作

col.Remove(query);}

查询数据
public void Query(){  

 //创建数据库链接

MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);    

//获得数据库

MongoDatabase db = server.GetDatabase(dbName);    

//获取Users集合

MongoCollection col = db.GetCollection("Users");    

//定义获取“Name”值为“xiaoxiang”的查询条件

var query = new QueryDocument { { "Name", "xumingxiang" } };              

//查询全部集合里的数据

var result1 = col.FindAllAs<Users>();    

//查询指定查询条件的第一条数据,查询条件可缺省。

var result2 = col.FindOneAs<Users>();    

//查询指定查询条件的全部数据

var result3 = col.FindAs<Users>(query);}

更多MongoDb在C#中使用

using System;

using System.Collections.Generic;

using System.Linq;using System.Text;

using System.Runtime.Serialization;

using System.Data;

using System.Data.SQLClient;

using MongoDB.Bson;

using MongoDB.Driver;

namespace ConsoleApplication1{

   class Program    {

       static void Main(string[] args)        {

           //连接信息

           string conn = "mongodb://localhost";

           string database = "demoBase";

           string collection = "demoCollection";

           MongoServer mongodb = MongoServer.Create(conn);

//连接数据库

           MongoDatabase mongoDataBase = mongodb.GetDatabase(database);

//选择数据库名

           MongoCollection mongoCollection = mongoDataBase.GetCollection(collection);

//选择集合,相当于表

           mongodb.Connect();

//普通插入

           var o = new { Uid = 123, Name = "xixiNormal", PassWord = "111111" };

           mongoCollection.Insert(o);            

//对象插入

           Person p = new Person { Uid = 124, Name = "xixiObject", PassWord = "222222" };

           mongoCollection.Insert(p);            

//BsonDocument 插入

           BsonDocument b = new BsonDocument();

           b.Add("Uid", 125);

           b.Add("Name", "xixiBson");

           b.Add("PassWord", "333333");

           mongoCollection.Insert(b);

           Console.ReadLine();

       }    }

   class Person {        public int Uid;        public string Name;        public string PassWord;    }}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值