zoukankan      html  css  js  c++  java
  • C#操作MongoDB

    1.Web.config配置:
    <configuration>
      <connectionStrings>
        <add name="MongoSessionServices" connectionString="mongodb://192.168.2.88:27017" />
      </connectionStrings>
    </configuration>
    2.建立BaseDal.cs
    public class BaseDal
    {
        protected static IMongoDatabase MogoDatabase
        {
            get
            {
                return new MongoClient(ConfigurationManager.ConnectionStrings["MongoSessionServices"].ToString()).GetDatabase("数据库名称");
            }
        }
    
        /// <summary>
        /// MongoDb查询
        /// </summary>
        /// <typeparam name="T">对象名称</typeparam>
        /// <param name="collectionName">表名</param>
        /// <returns></returns>
        protected static IQueryable<T> IQueryableInit<T>(string collectionName) where T : new()
        {
            var colls = MogoDatabase.GetCollection<T>(collectionName);
            var query = from n in colls.AsQueryable() select n;
            return query;
        }
    }
    3.建立Model
    public class Text
    {
        //mongodb生成的_id可由下列方式生成
        //[BsonId]
        //public ObjectId Id { get; set; } //时间戳,机器ID,进程ID和序列号组成的12字节值
        [BsonId(IdGenerator = typeof(StringObjectIdGenerator))]
        public string Id { get; set; }  //由字符串组成
        //[BsonId(IdGenerator = typeof(CounterIdGenerator))]
        //public int Id { get; set; } //由数字组成
        [BsonElement("name")]  //mongodb中的名称
        public string Name { get; set; }
    }
    
    public class CounterIdGenerator : IIdGenerator
    {
        private static int _counter = 0;
        public object GenerateId(object container, object document)
        {
            return _counter++;
        }
    
        public bool IsEmpty(object id)
        {
            return id.Equals(default(int));
        }
    }
    4.查询
    public class GenericArticle_Dal : BaseDal
    {
    
        public static IQueryable<MongoDB_Models.GenericArticle> GetInit()
        {
            var query = IQueryableInit<MongoDB_Models.GenericArticle>(MongoDB_Models.Collections.GenericArticle);
            return query;
        }
    }
    static void Main(string[] args)
    {
        var list=GenericArticle_Dal.IQueryable<MongoDB_Models.GenericArticle>().ToList();
    }
    5.多表查询
    public class Video_Dal
    {
        public static IQueryable<VideoExt> GetInit(IMongoCollection<Video> coll1, IMongoCollection<VideoList> coll2)
        {
            var temp = from n in coll1.AsQueryable()
                       join f in coll2.AsQueryable() on n.ID equals f.ID
                       select new HeavenVideoExt()
                       {
                           Id = n.Id,
                           ModelId = n.ModelId,
                           AddMongoDateTime = n.AddMongoDateTime,
                           ID = n.ID,
                           Title = n.Title,
                           UploadImgPath = n.UploadImgPath,
                           VideoList = f
                       };
            return temp;
        }
    }
    var colls1 = MogoDatabase.GetCollection<Video>("Video");
    var colls2 = MogoDatabase.GetCollection<VideoList>("VideoList");
    var list = Video_Dal.GetInit(colls1, colls2).ToList();
  • 相关阅读:
    了解mysql之约束篇
    快速了解MySQL中的字符串数据类型
    解决tomcat命令行输出的中文乱码问题
    浅谈了解JDBC
    .NET Core项目部署到Linux(Centos7)(八)为.NET Core项目创建Supervisor进程守护监控
    .NET Core项目部署到Linux(Centos7)(七)启动和停止.NET Core项目
    .NET Core项目部署到Linux(Centos7)(六)发布.NET Core 项目到Linux
    .NET Core项目部署到Linux(Centos7)(五)Centos 7安装.NET Core环境
    .NET Core项目部署到Linux(Centos7)(四)VMware Workstation虚拟机Centos 7安装
    .NET Core项目部署到Linux(Centos7)(三)创建.NET Core API项目
  • 原文地址:https://www.cnblogs.com/genesis/p/7874220.html
Copyright © 2011-2022 走看看