连接和操作MongoDB与.NET Core可以通过MongoDB官方提供的.NET驱动程序来实现。
以下是一种基本的连接和操作MongoDB的方法:
首先,在你的.NET Core项目中安装 MongoDB.Driver 包。你可以使用NuGet包管理器或者命令行进行安装:
- dotnet add package MongoDB.Driver
-
在你的代码中,初始化MongoDB连接,并配置连接字符串:
- using MongoDB.Driver;
-
- public class MongoDBHandler
- {
- private IMongoDatabase _database;
- private MongoClient _mongoClient;
-
- public MongoDBHandler()
- {
- string connectionString = "mongodb://localhost:27017"; // MongoDB连接字符串
- _mongoClient = new MongoClient(connectionString);
-
- string databaseName = "YourDatabaseName"; // 数据库名称
- _database = _mongoClient.GetDatabase(databaseName);
- }
-
- // 添加其他操作方法
- }
-
1. 插入数据
- public async Task InsertDocument<T>(string collectionName, T document)
- {
- var collection = _database.GetCollection<T>(collectionName);
- await collection.InsertOneAsync(document);
- }
-
2. 查询数据
- public async Task<List<T>> GetAllDocuments<T>(string collectionName)
- {
- var collection = _database.GetCollection<T>(collectionName);
- var documents = await collection.Find(Builders<T>.Filter.Empty).ToListAsync();
- return documents;
- }
-
3. 更新数据
- public async Task<ReplaceOneResult> UpdateDocument<T>(string collectionName, FilterDefinition<T> filter, T updatedDocument)
- {
- var collection = _database.GetCollection<T>(collectionName);
- var result = await collection.ReplaceOneAsync(filter, updatedDocument);
- return result;
- }
-
4. 删除数据
- public async Task<DeleteResult> DeleteDocument<T>(string collectionName, FilterDefinition<T> filter)
- {
- var collection = _database.GetCollection<T>(collectionName);
- var result = await collection.DeleteOneAsync(filter);
- return result;
- }
-
你可以在你的应用程序中实例化 MongoDBHandler 类,并使用这些方法来连接MongoDB并执行操作:
- var handler = new MongoDBHandler();
-
- // 插入数据示例
- var document = new { Name = "John", Age = 30 };
- await handler.InsertDocument("MyCollection", document);
-
- // 查询数据示例
- var allDocuments = await handler.GetAllDocuments<dynamic>("MyCollection");
-
- // 更新数据示例
- var filter = Builders<dynamic>.Filter.Eq("Name", "John");
- var updatedDocument = new { Name = "John Doe", Age = 35 };
- var updateResult = await handler.UpdateDocument("MyCollection", filter, updatedDocument);
-
- // 删除数据示例
- var deleteFilter = Builders<dynamic>.Filter.Eq("Name", "John Doe");
- var deleteResult = await handler.DeleteDocument("MyCollection", deleteFilter);
-
这是一个简单的示例,你可以根据需要进行调整和扩展。记得处理异常和错误情况,并根据你的应用程序需求优化代码。这将帮助你开始使用.NET Core连接和操作MongoDB数据库。