一、安装依赖
MongoDB.Driver
二、配置数据库连接信息
在appsetings.json下,新增mongoDB连接信息配置:
"ConnectionStrings": {
"MongoDB": "mongodb://localhost:27017"
}
三、注册mongoDB客户端
在Program.cs中添加以下代码:
var mongoConnectionString = builder.Configuration.GetConnectionString("MongoDB");
var databaseName = "my_database";
// 注册mongoDB客户端
builder.Services.AddSingleton<IMongoClient>(new MongoClient(mongoConnectionString));
四、创建mongDBService服务和实体类
mongDBService.cs
public class MongoDbService
{
private readonly IMongoDatabase _database;
public MongoDbService(IMongoClient mongoClient, string databaseName)
{
_database = mongoClient.GetDatabase(databaseName);
}
//这段代码是获取名为 "Users" 的 MongoDB 集合的引用。
//这个集合用于存储 Users类型的文档。这行代码不会实际创建集合,
//如果集合不存在,MongoDB 会在第一次向集合写入数据时自动创建它。
public IMongoCollection<User> GetUsersCollection()
{
return _database.GetCollection<User>("Users");
}
}
User.cs
public class User
{
[BsonId]
public string Id { get; set; }
public string Name { get; set; }
public string Password { get; set; }
}
五、mongoDBService 服务注册
在Program.cs中添加以下代码:
builder.Services.AddScoped<MongoDbService>(serviceProvider =>
{
var mongoClient = serviceProvider.GetRequiredService<IMongoClient>();
return new MongoDbService(mongoClient, databaseName);
});
至此MongoDB 已经整合完成,下面我们写两个接口测试在.NetCore中操作mongoDB数据库。
六、测试
新建一个UserController控制器
[Route("api/[controller]/[action]")]
[ApiController]
public class UserController : ControllerBase
{
private readonly MongoDbService mongoService;
public UserController(MongoDbService mongoService)
{
this.mongoService = mongoService;
}
[HttpPost]
public ObjectResult AddUser([FromBody] User user)
{
user.Id = Guid.NewGuid().ToString();
mongoService.GetUsersCollection().InsertOne(user);
return new ObjectResult("创建成功");
}
[HttpGet]
public ObjectResult GetAllUser()
{
var users = mongoService.GetUsersCollection().Find(s => true).ToList();
return new ObjectResult(users);
}
}