MongoDbHelper

举报
清雨小竹 发表于 2022/09/25 02:40:57 2022/09/25
【摘要】  添加引用:MongoDB.Driver using MongoDB.Bson; using MongoDB.Driver; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; name...

 添加引用:MongoDB.Driver

using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;

namespace YFMongoBD
{
    public class Db
    {
        private static readonly string connStr = "mongodb://192.168.0.1:27017/";//ConfigurationManager.ConnectionStrings["connStr"].ToString();

        private static readonly string dbName = "lhctest";// ConfigurationManager.AppSettings["dbName"].ToString();

        private static IMongoDatabase db = null;

        private static readonly object lockHelper = new object();

        private Db() { }

        public static IMongoDatabase GetDb()
        {
            if (db == null)
            {
                lock (lockHelper)
                {
                    if (db == null)
                    {
                        var client = new MongoClient(connStr);
                        db = client.GetDatabase(dbName);
                    }
                }
            }
            return db;
        }
    }

    public class MongoDbHelper
    {
        private IMongoDatabase db = null;

        public MongoDbHelper()
        {
            this.db = Db.GetDb();
        }

        public IMongoCollection<T> GetConnection<T>()
        {
             return db.GetCollection<T>(typeof(T).Name);
        }
    }
}

调用

using MongoDB.Bson.IO;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YFMongoBD;
using Newtonsoft;

namespace TestMongoDB
{
    [MongoDB.Bson.Serialization.Attributes.BsonIgnoreExtraElements]//防止没有key时序列化报错
    public class  yfTestClass
    {
        public string id { set; get; }
        public string name { set; get; }
        public string value { set; get; }
        public string key5 { set; get; }
    }
    class Program
    {
        private static MongoDbHelper db = new MongoDbHelper();
        static void Main(string[] args)
        {
            var node = new yfTestClass();

            node.name = "ssss";
            node.value = "dddefwefew";
            node.id = DateTime.Now.ToString("yyyyMMddhhmmss");
            
            var connection = db.GetConnection<yfTestClass>();
            //增加
            //connection.InsertOne(node);

            //删除
            //connection.DeleteMany(aa=>aa.name== "dddefwefew");


            //修改
            //var update = Builders<yfTestClass>.Update.Set(s => s.key2, "keykeykey");
            //connection.UpdateMany(aa=>aa.id == "20170313044509", update);

            //查
            var list = connection.Find(u=>u.name=="ssss").SortBy(u=>u.id).ToList();
            var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(list);
            Console.WriteLine(jsonstr);
            Console.ReadLine();
        }
    }
}

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/61921098

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。