首页 > 数据库 >C# 使用mongodb 帮助类

C# 使用mongodb 帮助类

时间:2024-11-06 17:46:27浏览次数:3  
标签:帮助 MongoDB C# mongodb collection public static MongoDBHelper id

在C#中使用MongoDB,你需要安装MongoDB的C#驱动程序,通常使用MongoDB.Driver。

以下是一个简单的帮助类,用于连接MongoDB数据库并执行基本的CRUD操作。

首先,通过NuGet安装MongoDB.Driver:

Install-Package MongoDB.Driver

using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
 
public static class MongoDBHelper<T> where T : class
{
    private static IMongoCollection<T> _collection;
 
    static MongoDBHelper()
    {
        var connectionString = "your_mongodb_connection_string";
        var client = new MongoClient(connectionString);
        var database = client.GetDatabase("your_database_name");
        _collection = database.GetCollection<T>("your_collection_name");
    }
 
    public static List<T> GetAll()
    {
        return _collection.Find(new BsonDocument()).ToList();
    }
 
    public static T GetById(string id)
    {
        return _collection.Find(Builders<T>.Filter.Eq("_id", id)).FirstOrDefault();
    }
 
    public static T GetSingle(Expression<Func<T, bool>> predicate)
    {
        return _collection.Find(predicate).FirstOrDefault();
    }
 
    public static void Insert(T entity)
    {
        _collection.InsertOne(entity);
    }
 
    public static void Update(T entity)
    {
        _collection.ReplaceOne(Builders<T>.Filter.Eq("_id", entity.Id), entity);
    }
 
    public static void Delete(string id)
    {
        _collection.DeleteOne(Builders<T>.Filter.Eq("_id", id));
    }
}

使用该帮助类

public class MyEntity
{
    public string Id { get; set; }
    public string Name { get; set; }
}
 
// 获取所有记录
List<MyEntity> entities = MongoDBHelper<MyEntity>.GetAll();
 
// 通过ID获取单个记录
MyEntity entity = MongoDBHelper<MyEntity>.GetById("some_id");
 
// 插入新记录
MyEntity newEntity = new MyEntity { Name = "New Entity" };
MongoDBHelper<MyEntity>.Insert(newEntity);
 
// 更新记录
newEntity.Name = "Updated Name";
MongoDBHelper<MyEntity>.Update(newEntity);
 
// 删除记录
MongoDBHelper<MyEntity>.Delete("some_id");

 

标签:帮助,MongoDB,C#,mongodb,collection,public,static,MongoDBHelper,id
From: https://www.cnblogs.com/Fengge518/p/18530665

相关文章

  • 2529.正整数和负整数的最大计数(leetcode)
    https://leetcode.cn/problems/maximum-count-of-positive-integer-and-negative-integerclassSolution{publicintmaximumCount(int[]nums){//思路:由于数组非递减,考虑logn实现//因此可以有二段性可以二分//即寻找正数和负数的分界点t......
  • LeetCode每日一题--3254.长度为k的子数组的能量值I
    代码解释:初始化结果数组:ans初始化为-1,因为如果子数组不满足条件,其能量值即为-1。连续递增子序列长度计数:cnt用于记录当前连续递增子序列的长度。遍历数组:使用enumerate遍历nums,同时获取元素的索引i和值x。更新连续递增子序列长度:如果当前元素是数组的第一......
  • 万象网管2004报错提示:taxinject.dll文件丢失,如何修复并启动Server.exe
    在使用万象网管2004这款网吧管理软件时,部分用户可能会遇到启动Server.exe时系统提示“taxinject.dll文件丢失”的错误。这一错误通常会导致Server.exe无法正常启动,从而影响网吧管理系统的正常运行。本文将详细介绍如何修复这一错误,并成功启动Server.exe。一、了解taxinject.d......
  • 上古卷轴msvcp120.dll文件丢失怎么办?上古卷轴游戏msvcp120.dll缺失问题的高效解决方案
    对于热爱《上古卷轴》系列游戏的玩家来说,遇到游戏因msvcp120.dll文件丢失而无法运行的情况无疑是一个令人沮丧的问题。这个动态链接库文件(DLL)是MicrosoftVisualC++RedistributablePackage中的一个关键组件,对于游戏的正常运行至关重要。一旦这个文件缺失,游戏可能无法加载必......
  • [USACO21DEC] Tickets P 题解
    [USACO21DEC]TicketsP首先我们思考暴力的\(O(n^2)\)怎么做。显然比起每次以\(i\)为起点跑\(n\)遍最短路,建反图后分别以\(1\)和\(n\)为起点跑两遍最短路是更加经济的方式。然后你可能会以为\(\text{dis}(1,i)+\text{dis}(n,i)\)就是答案了,之后你就会发现连样例都过......
  • vscode: cmake + vcpkg + clangd + lldb调试的一体化IDE配置
    目录vscode:cmake+vcpkg+clangd+lldb调试的一体化IDE配置介绍需求准备工作vscode插件配置项目配置文件vcpkg的两个文件:CMakeLists.txt:CMakePresets.json尝试构建前面未完成的工作总结vscode:cmake+vcpkg+clangd+lldb调试的一体化IDE配置介绍cmake是一个c++的跨......
  • LCD TV电源逆变器工作原理
    LCDTV电源逆变器工作原理本文将介绍一款基于ARM控制的逆变器电源电路设计方案及其应用。系统总体方案1、总体设计框图如图1所示,逆变器系统由升压电路、逆变电路、控制电路和反馈电路组成。低压直流电源DC12V经过升压电路升压、整流和滤波后得到约DC170V高压直流电,然后经全......
  • CATIA许可证过期如何处理
    在使用CATIA软件的过程中,有时可能会遇到许可证过期的情况。这不仅会影响到您的工作进度,还可能给您带来不必要的麻烦。那么,当CATIA许可证过期时,我们应该如何处理呢?本文将为您提供一些建议,帮助您高效解决这一问题。一、确认许可证过期信息首先,当您收到许可证过期的提示时,请仔细阅......
  • Exchange匿名发送邮件
    Exchange默认仅允许匿名发送邮件到组织内部,无法匿名发送到外部如果需要匿名发送到外部,需要新建接收连接器,配置为允许匿名中继1.新建专用的接收连接器,配置如下  完成以上设置即可。参考:https://learn.microsoft.com/zh-cn/exchange/mail-flow/connectors/allow-anonymou......
  • CDGP|数据治理如何落地?多角度详细探讨
    数据治理是一个长期且复杂的体系化工程,它通过一系列流程规范、制度、IT能力以及持续运营等机制来保障治理工作的持续推进。落地数据治理需要从多个方面入手,本文将从组织建设、流程规范、IT平台以及持续运营等角度详细探讨。一、建立数据治理组织数据治理需要打破企业内部壁......