Cấu hình kết nối MongoDB qua giao diện người dùng
Tải xuống MongoDB Compass (GUI) | Hướng dẫn kết nối
Cú pháp kết nối terminal: mongo IP:PORT/TEN_CSDL -u TEN_TAI_KHOAN -p MAT_KHAU Ví dụ: 192.168.0.168:27017/test -u admin -p 123456
Thiết lập ứng dụng .NET
Kết nối CSDL MongoDB: mongodb://localhost:27017
Định dạng chuỗi kết nối đầy đủ: mongodb://TEN_TAI_KHOAN:MAT_KHAU@IP:PORT
Ví dụ cụ thể: mongodb://admin:123456@192.168.0.196:27017
Cài đặt driver cho .NET qua NuGet: Install-Package MongoDB.Driver
Dưới đây là ví dụ dự án console kiểm thử
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MongoDB.Driver;
using System;
namespace MongoDBTest
{
internal class ConnectionManager
{
public static IConfigurationRoot LoadConfiguration()
{
var builder = new ConfigurationBuilder();
builder.SetBasePath(AppDomain.CurrentDirectory);
builder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
return builder.Build();
}
public static IMongoDatabase ConnectToDatabase(IConfigurationRoot config)
{
var settings = new DbSettings();
config.Bind("MongoDb", settings);
var client = new MongoClient(settings.ConnectionString);
return client.GetDatabase(settings.DatabaseName);
}
public static IServiceProvider CreateServices()
{
var config = LoadConfiguration();
var services = new ServiceCollection();
services.AddScoped<IMongoDatabase>(sp => ConnectToDatabase(config));
services
.AddScoped<IGameService, GameService>()
.AddScoped<IUserService, UserService>();
return services.BuildServiceProvider();
}
}
}
using System;
namespace MongoDBTest
{
public class DbSettings
{
public string ConnectionString { get; set; }
public string DatabaseName { get; set; }
}
}
appsettings.json
{
"MongoDb": {
"ConnectionString": "mongodb://admin:123456@192.168.0.196:27017",
"DatabaseName": "poemgame"
}
}
using MongoDBTest;
using System;
using System.Threading.Tasks;
Console.WriteLine("Kết nối thành công!");
var userService = ConnectionManager.CreateServices().GetService<IUserService>();
foreach (var user in await userService.GetAllAsync())
{
Console.WriteLine(user.Username);
}
Triển khai lớp xử lý dữ liệu
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace DataLayer
{
public class UserService : IUserService
{
private readonly IMongoDatabase _database;
public UserService(IMongoDatabase database)
{
_database = database;
}
public async Task<Guid> CreateAsync(User user)
{
var collection = _database.GetCollection<User>("Users");
await collection.InsertOneAsync(user);
return user.Id;
}
public async Task<List<User>> GetAllAsync()
{
var collection = _database.GetCollection<User>("Users");
return await collection.Find(new BsonDocument()).ToListAsync();
}
public async Task<User> GetAsync(Guid id)
{
var collection = _database.GetCollection<User>("Users");
return await collection.Find(x => x.Id == id).FirstOrDefaultAsync();
}
public async Task<List<User>> FindAsync(Expression<Func<User, bool>> filter)
{
var collection = _database.GetCollection<User>("Users");
return await collection.Find(filter).ToListAsync();
}
public async Task DeleteAsync(Guid id)
{
var collection = _database.GetCollection<User>("Users");
await collection.DeleteOneAsync(x => x.Id == id);
}
public async Task UpdateAsync(User user)
{
var collection = _database.GetCollection<User>("Users");
await collection.ReplaceOneAsync(x => x.Id == user.Id, user);
}
}
}