欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MongoDB增删查改

程序员文章站 2022-06-15 20:31:23
...

MongoDB驱动种类介绍 1. MongoDB官方驱动:mongo-csharp-driver,下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 2. 第三方驱动samus,这是一款使用使用较多的驱动,更新频率比较快。

MongoDB驱动种类介绍

1. MongoDB官方驱动:mongo-csharp-driver,下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads

2. 第三方驱动samus,这是一款使用使用较多的驱动,更新频率比较快,samus驱动除了支持一般形式的操作之外,还支持Linq 和Lambda 表达式。下载地址:https://github.com/samus/mongodb-csharp。
两个mongodb驱动对mongodb数据库的操作流程基本相同,只不过在实现方式上有所差异,如samus驱动除了支持一般的形式操作之外,还支持Linq和Lambda表达方式。

使用MongoDB官方驱动操作数据库

解压缩包得到如下两个文件:
MongoDB.Bson.dll :序列化、Json相关

MongoDB.Driver.dll :mongodb驱动

添加引用,将上面两个DLL引入到项目里面

向代码中引入命名空间

using MongoDB.Bson;
using MongoDB.Driver;

获得数据库连接服务

string  connectionString  =   " mongodb://localhost " ; //mongodb://[username:password@]hostname[:port][/[database][?options]]
MongoServer server = MongoServer.Create(connectionString);// 连接到一个MongoServer上

获得指定数据库对象引用

MongoDatabase database = server.GetDatabase("test"); // "test" 是数据库名称

获得指定集合,如果数据库中没有,则会新建一个

MongoCollection col = db.GetCollection("Users");//Users集合名

插入数据到数据库

public void Insert()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库test
MongoDatabase db = server.GetDatabase(dbName);
Users users = new Users();
users.Name = "test";
users.Sex = "man";
//获得Users集合,如果数据库中没有,先新建一个
MongoCollection col = db.GetCollection("Users");
//执行插入操作
col.Insert(users);
}

更新数据

public void Update()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库test
MongoDatabase db = server.GetDatabase(dbName);
//获取Users集合
MongoCollection col = db.GetCollection("Users");
//定义获取“Name”值为“test”的查询条件
var query = new QueryDocument { { "Name", "test" } };
//定义更新文档
var update = new UpdateDocument { { "$set", new QueryDocument { { "Sex", "wowen" } } } };
//执行更新操作
col.Update(query, update);
}

删除数据

public void Delete()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库test
MongoDatabase db = server.GetDatabase(dbName);
//获取Users集合
MongoCollection col = db.GetCollection("Users");
//定义获取“Name”值为“test”的查询条件
var query = new QueryDocument { { "Name", "test" } };
//执行删除操作
col.Remove(query);
}

查询数据

public void Query()
{
//创建数据库链接
MongoServer server = MongoDB.Driver.MongoServer.Create(strconn);
//获得数据库test
MongoDatabase db = server.GetDatabase(dbName);
//获取Users集合
MongoCollection col = db.GetCollection("Users");
//定义获取“Name”值为“test”的查询条件
var query = new QueryDocument { { "Name", "test" } };
//查询全部集合里的数据
var result1 = col.FindAllAs();
//查询指定查询条件的第一条数据,查询条件可缺省。
var result2 = col.FindOneAs();
//查询指定查询条件的全部数据
var result3 = col.FindAs(query);
}

总结

有两种使用集合的方法:使用 BsonDocument 对象模型、 使用自己的实体类。本文主要介绍 使用实体。 如果数据格式很随意,很难或不可能定义成实体类的话,那就使用 BsonDocument 对象模型。由于使用自己的实体类更容易得多,并且确定使用实体, 你的实体类必须有以下要求:具有无参构造函数 , 对于要存储在数据库里的数据,需定义公共的读/写字段或属性。如果实体类将作为根级文档,那它必须包含一个Id字段或属性(通常命名为“Id”,即使有需要你可以重写它)。通常Id的类型为ObjectId。

更多相关教程请访问 MySQL视频教程