• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#操作MongoDB

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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();

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
LinuxC++程序进行性能分析工具gprof使用入门发布时间:2022-07-13
下一篇:
C++多态与虚函数表发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap