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 adminshow collectionsdb.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");

问题解决了。
时间: 2024-08-25 23:27:13

C#开发接口——MongoDB的相关文章

C#开发接口——MongoDB(对库操作)

MongoDB的C#驱动只有一些类是线程安全的,其中包含(MongoServer.MongoDatabase.MongoCollection.MongoGridFS),其他的大多数类不是线程安全的. 有些场景需要保证数据的正确性,需要将一系列的操作绑定到DB级对象.那么可以用类似事务控制的方式保证一致性. //事务控制 static void Main(string[] args) { //数据库连接字符串 string connectionString = "mongodb://127.0.0

Go语言开发中MongoDB数据库

伴随着移动端的兴起,Nosql数据库以其分布式设计和高性能等特点得到了广泛的应该用,下面将介绍下Nosql中的mongoDB在Go语言中的应用,在开发前,有必要了解下基础知识,mongo数据库,MongoDB在Go语言开发接口文档 在开发前,导入开发需要用到的类库 import ( "fmt" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" "log" ) 在示例中用到的结构有: type S

Android JNI 本地开发接口

前言 JNI java native interface java 本地开发接口 JNI理解 JNI 简单的理解就是一个桥梁或者适配器,是C/C++语言和JAVA语言进行进行沟通的桥梁和中间件,相当于android开发中ListView和GridView的Adapter适配器,将数据和界面显示的view进行连接起来的桥梁.也可以理解为协议(接口),即C/C++与java语言相互沟通(传参,调用)的协议,在实际开发中也是通过本地开发接口(native interface)来实现相互沟通.

SQLite3 C/C++ 开发接口简介

SQLite3 C/C++ 开发接口简介 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API. SQLite3是为了满足以下的需求而开发的: 支持UTF-16编码. 用户自定义的文本排序方法. 可以对BLOBs字段建立索引. 因此为了支持这些特性我改变了数据库的格式,建立了一个与之前版本不兼容的3.0版. 至于其他的兼容性的改变,例如全新的API等等,都将在理论介绍之后向你说明,这样

记微信开发(接口篇)

记微信开发(接口篇) 刚从哥们儿那弄到了个带认证的微信号,恰巧能部署到我的ECS上,来玩玩微信开发(php编程-.) ECS环境:centos7+XAMPP+drupal(已部署了一个drupal网站) 1. wx_sample.php文件 就在微信公众号开发者文档处,接入指南里面有PHP示例下载 下载完成后,看见 把第7行的weixin改成任意你喜欢的字符,记下来(譬如我这里改成jiekou,这就是你接下来要在服务器配置里面填的Token(令牌)项,这个暂且不提) 2. 上传到php服务器 这

图片开发接口-美女图片API开放接口

天狗开放阅图 是基于开源的 TngouFS-天狗文件系统而独立运维的图片系统,为广大的开发者提供一点小小的爱好, 相关接口 图片API列表 API 描述 基础 www.tngou.net/tnfs/api/classify 取得热点图片分类,可以通过分类id取得图片列表 重要 www.tngou.net/tnfs/api/list 取得图片列表,也可以用分类id作为参数 一般 www.tngou.net/tnfs/api/news 取得最新的图片,通过id取得大于该id的图片 如果你是APP的开

短信猫二次开发接口支持任何一种开发语言性能稳定

此款短信猫二次开发接口基于数据库开发方式支持任一种开发语言对短信猫开发,兼容性强.开发简单方便.灵活.稳定.可以快速地使您的应用系统实现短信功能,多种接口方式供二次开发时选择,系统具备良好的可扩展性.企事业单位通过此款短信猫二次开发接口方式实现短信功能,既实现了资源的共享和有效使用,便于企业对进出信息的管理.监控和统计,同时为以后短信功能的扩展提供了便利. 短信猫二次开发接口软件运行界面如图: 在该方案中,考虑到银行是对信息安全性要求很高的行业,采用短信猫作为短信收发设备,避免了常用的通过移动互

微信公众平台开发接口PHP SDK完整版

原文:微信公众平台开发接口PHP SDK完整版 官方提供的SDK只有一个文本消息功能,我们将所有消息的消息类型及事件响应都整理了进来,并且加入日志记录,代码如下: 更新日志: 2013-01-01 版本1.02014-03-15 增加图片.视频.语音的内容回复2014-04-09 增加菜单链接事件2014-04-10 修改文本回复的判定方法2014-05-20 增加高级群发消息通知事件2014-05-26 增加多客服消息及多客服的判定方法2014-05-27 修改自动回复判定方式2014-06-

多口短信猫设备及相应二次开发接口程序

多口短信猫是指具备同时插入多张SIM卡使用的短信猫设备,具备单口短信猫8-16倍的短信收发效率,可满足对短信发送.接收量大的客户的应用需求.同样,借助相应的短信猫开发接口程序可以将多口短信猫应用于其他系统.软件当中. 多口短信猫设备有: 8口多口短信猫池,支持同时插入8张SIM卡使用 16口多口短信猫池设备,采用独立电源,一根USB数据线连接 多口短信猫开发接口程序与单口短信猫开发有所不同,大多购买短信猫设备提供的DLL免费短信猫开发包仅支持单口短信猫设备,不支持多口短信猫,所以多口短信猫二次开