MongoDB 是一个流行的 NoSQL 数据库,它使用 BSON 格式存储数据,非常适合处理大量的非结构化或半结构化数据,C# 中通过 MongoDB 的官方驱动 MongoDB .NET Driver 来进行操作,下面将详细介绍 C# 中 MongoDB 的操作方法。
准备工作
1、安装 MongoDB .NET Driver:你可以通过 NuGet 包管理器来安装 MongoDB .NET Driver。
2、连接到 MongoDB:首先需要创建一个 MongoClient
实例来连接到你的 MongoDB 服务。
var client = new MongoClient("mongodb://localhost:27017");
数据库操作
1、创建数据库:在 MongoDB 中,数据库只有在第一次插入数据时才会被创建。
var database = client.GetDatabase("myNewDatabase");
2、列出所有数据库:
var databases = client.ListDatabases().ToList();
集合操作
1、获取集合:集合是 MongoDB 中的表。
var collection = database.GetCollection<BsonDocument>("myCollection");
2、创建集合:虽然通常不需要手动创建集合,但在某些情况下可能需要。
database.CreateCollection("newCollection");
3、删除集合:
database.DropCollection("myCollection");
文档操作
1、插入文档:
var document = new BsonDocument { { "name", "John" }, { "age", 30 } }; collection.InsertOne(document);
2、查询文档:
var filter = Builders<BsonDocument>.Filter.Eq("name", "John"); var documents = collection.Find(filter).ToList();
3、更新文档:
var update = Builders<BsonDocument>.Update.Set("age", 31); collection.UpdateOne(filter, update);
4、删除文档:
collection.DeleteOne(filter);
5、批量操作:
插入多个文档:
“`csharp
var documents = new List<BsonDocument>
{
new BsonDocument { { "name", "Jane" }, { "age", 28 } },
new BsonDocument { { "name", "Doe" }, { "age", 35 } }
};
collection.InsertMany(documents);
“`
删除多个文档:
“`csharp
var deleteManyResult = collection.DeleteMany(filter);
“`
索引操作
1、创建索引:为了提高查询性能,可以在一个或多个字段上创建索引。
collection.Indexes.CreateOne(Builders<BsonDocument>.IndexKeys.Ascending(new string[] { "name" }));
2、删除索引:
collection.Indexes.DropOne(Builders<BsonDocument>.IndexKeys.Ascending(new string[] { "name" }));
3、列出所有索引:
var indexes = collection.Indexes.List();
聚合操作
MongoDB 提供了强大的聚合框架,用于处理复杂的数据处理任务。
var pipeline = Builders<BsonDocument>.Pipeline.AppendStages( new []{ Builders<BsonDocument>.Aggregate.Match(filter), Builders<BsonDocument>.Aggregate.Sort(Builders<BsonDocument>.Sort.Descending("age")), Builders<BsonDocument>.Aggregate.Project(Builders<BsonDocument>.Projection.Include("name")) } ); var results = collection.Aggregate(pipeline).ToList();
事务操作(ACID)
从 MongoDB 4.0 开始支持多文档事务。
using (var session = client.StartSession()) { session.StartTransaction(); try { // 执行多个操作... session.CommitTransaction(); } catch (Exception ex) { session.AbortTransaction(); } }
以上是 C# 中使用 MongoDB .NET Driver 进行 MongoDB 操作的基本方法,这些方法涵盖了数据库、集合和文档的创建、读取、更新、删除操作(CRUD),以及索引管理和聚合操作等高级特性,MongoDB 的事务支持确保了复杂操作的原子性,在使用这些方法时,务必注意异常处理和资源管理,以确保应用程序的稳定性和性能。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/321864.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复