MongoDB Compass - Công cụ giao diện quản lý CSDL

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);
        }
    }
}

Thẻ: MongoDB C# nosql .net core

Đăng vào ngày 26 tháng 6 lúc 04:30