已经升级了mongodb至最新的3.4的版本,我想想也该把驱动升到最新的了,我用的驱动还是1.7的版本呢,之前几次想升级,都是因为升级驱动需要改动的代码太大了,升级的成本很高,所以懒得动,就这么的用了几年了.但是现在出了很多新功能,如果不升级的话,根本用不了,比如Lookup等功能.想想咬牙就升级了.驱动DLL一换,就发现代码全报错了.以前的IMongoQuery等方法全用不了的.有一些方法也不见了,在修改的过程中,只能写边修改边写代码测试,一个一个测试它提供的新方法.等了解了新的驱动后,觉得改…
回到目录 MongoDB的官方C#驱动,让我们使用起来也很方便,但对于Linq开发人员来说,可能有些不了解,所以,我还是将官方驱动进行了二次封装,而对于一个比较个性化的mongo操作,使用我封装的也很难实现,所以,还是需要大家直接使用官方驱动的原生写法的,下面进行一个介绍. Insert操作 mongoRepository.Insert(new M_FullClassify { }); Update操作 需要注意update由query(要更新的记录通过它来定位记录)和set(要更新的字段)组成…
本次改动的主要内容是实现MongoDB.Repository在MongoDB中建立索引. 建立索引主要使用MongoDB的官方驱动中EnsureIndex方法. 在MongoDB.Repository中建立一个BsonIndexAttribute,用以标识需要建立索引的属性. /// <summary> /// Indicates that this field or property should be index. /// </summary> [AttributeUsage(…
本人系新接触MongoDB不久,属于MongoDB的菜鸟范畴.在使用MongoDB的过程中,总结了一些认识,在此总结跟大家分享.欢迎拍砖. 关于MongoDB的内容,在此就不做介绍了,网上有浩如烟海的文章介绍.本人不善理论,不妥之处,望指正. 想法来由:本人之前主要使用EF的CodeFirst方式做一些开发,EF的优劣在此不做评述.但已经习惯了EF式的代码编写方式,所以做了一个小的框架,来模拟实现类似EF代码风格,以减少开发者在实际使用过程中对MongoDB的关注和维护.为其取名为MongoDB…
1.引用外部库  mysql-connector-java-8.0.版本的jar 2.jdbc驱动类:com.mysql.jdbc.Driver  改成 com.mysql.cj.jdbc.Driver 3.jdbcUrl:jdbc:mysql://{ip}:{port}/{db}?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true…
回到目录 对于数组对象mongodb本身是支持的,不过对于数组的更新,mongodb的Csharp驱动目前只支持一级,即你的对象里包含数组,而数组又包括数组,这表示两层,这在更新子数组时,Csharp驱动是不支持的,今天要说的就是如何让它支持子数组的更新,下面是我给出的数据结构…
本次改动的主要内容是实现MongoDB.Repository对MongoDBRef的支持. MongoDB对一对一,一对多,多对多关系的维护,官方推荐文档嵌入方式,反映到模型的设计如下: public class Student : Entity { public string Name { get; set; } public int Age { get; set; } } public class Teacher : Entity { public string Name { get; se…
异常情况描述 有一个“文章”类,其中包含一个“List<段落>”类型的属性,“段落”类是抽象类,其子类有“副标题段落”.“文本段落”.“图像段落”.“附件段落”.“列表段落”等类型. 将“文章”类型的对象存入MongoDB数据库完全没问题,但是从数据库取回则会引发这样的异常: [InvalidOperationException: 无法创建抽象类的实例.] 解决方法 之前曾就此问题向 magicDict 请教过,他给出的办法是参照这篇博文:http://www.cnblogs.com/zlp5…
本次主要内容:修正MongoDB.Repository框架对多数据库的支持. 在之前的五篇文章中对MongoDB.Repository框架做了简单的介绍是实现思路.之前是考虑MongoDB.Repository框架是可以同时支持多数据,且已实现支持多数据库.但有个前提:实体的类型不能重复,即一个实体类型(即命名空间一样)只能存在一个数据库中.举例,X实体,如果注册在了A数据库,那么将不能注册在B数据库中. 虽然实现了该功能,但是存在一些问题和不足: 问题:只有在使用具体的实例进行数据库操作时才会…
本次改动主要内容:为List<MongoDBRef>增加扩展方法 在MongoDB.Repository的使用过程中,发现在一个类中只定义一个List<MongoDBRef>是不够用的,即IRefEntity和IDBRefContainer两个接口并不能满足实体设计的需要.在很多时候,我们需要有多个List<MongoDBRef>,而原IRefEntity接口中只定义了一个List<MongoDBRef>.实际情况如 我们定义一个用户类Customer,这个…
本次改动主要实现MongoGridFS功能.实现方式主要使用了MongoGridFS和MongoGridFSFileInfo两个类. 设计思路:定义一个IMongoFile接口并继承IEntity,以实现主要的文件操作.该接口的设计主要参考MongoGridFSFileInfo的属性,以尽量满足在保存文件时各种所需. public interface IMongoFile : IEntity { /// <summary> /// remote file name /// </summa…
第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\Qt5.0.0-rc2\5.0.0-rc2,而Qt5.0的解压路径为:C:\Qt\qt-5.0.1-src. 注意事项:(1)安装mysql数据库的时候,网上很多教程说要选择自定义安装,并把lib和include这个选项选上.其实这个并不重要.因为我机器上很久前装mysql时选的是typical安装…
一.前言 最近项目中要用到MongoDB,因此实现做了不少的调研.发现网上很多现有关于MongoDB C#官方驱动的调用方法都是基于1.8版本的,已经不是用了最新的2.2版本.因此我在基于C#官方驱动2.2的基础上,对MongoDB的调用方法做了一些封装,以便于调用. 封装的内容包括: 1.封装了获取数据库及集合的方法 2.封装了新增一条.多条数据的方法 3.封装了更新一条.根据条件更新多条数据的方法,注意:是将对象统一更新成同一内容. 4.封装了删除一条,根据条件删除多条数据的方法. 5.封装…
还是一如既往先把结构图放出来,上上个版本添加了redis的缓存,但是不满足我的需求,因为公司有项目要求是分布式所以呢,这里我就增加了mongoDb进行缓存分布式,好了先看结构图. 总的来说比较蛋疼,因为从来没有使用过mongoDB,从安装,到转为windows服务,设置权限等等,好吧这都是题外话. 在写这个MongoDB版本的时候遇到的一些问题,我先总结下: 1.MongoDb版本是官网最新版3.4.4,官方驱动为2.4.3,首先我的项目是以GUID做为主键,在往MongonDB中插入时遇到的是…
回到目录 关于官方驱动集成IQueryable之后的一些事,有好事也有坏事,好事就是它会将你的linq语句非常友好的翻译成MongoDB语句,而坏事就是有一些linq语句不会被翻译,不会被翻译的代价就是将整个结果集装到内存,然后进行linq to object的查询,效率自然是非常低的,呵呵. 好事 最新官方驱动中,添加了对IQueryable扩展方法的支持 public static IMongoQueryable<TDocument> AsQueryable<TDocument>…
MongoDB的官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/releases 目前最新的版本是2.10,支持.NET 4.5以上.由于我现在的程序还在.NET4.0上面构建,所以这里使用1.10.1版本. 添加引用 解压下载到的驱动,然后在我们的程序中添加引用: MongoDB.Bson.dll MongoDB.Driver.dll 然后在代码中添加Using: using MongoDB.Bson; using MongoDB…
在C#中使用官方驱动操作MongoDB 8.1)下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-driver ,当前版本为1.4.1 下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads 编译之后得到两个dll MongoDB.Driver.dll:顾名思义,驱动程序 Mon…
C#基于Mongo的官方驱动手撸一个简易版MongoDB-ORM框架 如题,在GitHub上找了一圈想找一个MongoDB的的ORM框架,未偿所愿,就去翻了翻官网(https://docs.mongodb.com/drivers/csharp/) 看了看文档发现官方的驱动功能已经相当强大了并且更新速度很快 2.3之后得驱动版本已经支持 .Net 5,而且方法都已支持Task ,可以配合async , await.使用 ,同时也支持Lambda表达式及表达式树 官方是这么说的(https://mo…
本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads,更新的还是比较及时的,目前已经支持大部门linq语法. 2.samus驱动:https://github.com/samus/mongodb-csharp/downloads. 这个好像很久都没有更新了,估计是被抛弃了…
回到目录 MongoDB的官方驱动,语法更好,更强 之前写过关于IMongoRepository仓储的文章,在mongodb的驱动选择上使用了NoRM,但是进行$ref引用类型导航时出现了问题,它对引用类型属性支持不是很好,还是使用几年前的泛型技术而没有使用Attribute,在这个方面官方驱动做的更好,所以,我还是使用官方驱动又实现了一次IMongoRepository,把一些实现的细节封装在了底层,我们叫这个官方仓储为MongoOfficialRepository,呵呵,谁叫你来的晚呢,Mo…
回到目录 上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是跟着.net走的正方向,大事所趋,但有时,我们的前台已经使用同步方式实现了,为了不改变前台代码,所以,后台的异步版本可能不是我们所需要的,所以,我们需要将它进行一些改造,把异步改为同步,即主线程等待异步方法执行结束后,再进行下面的代码,这样,可以保证方法的正确性. 由于insert,update,d…
Unity是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品.作为一个完全集成的专业级应用,Unity还包含了价值数百万美元的功能强大的游戏引擎.Unity作为一个游戏开发工具,它的设计主旨就是让你能够创建令人惊讶的游戏.Unity作为一种开发环境,可让你脱离传统的游戏开发方式,以一种更简单的方式专注于你的游戏开发.开发网络游戏.移动游戏.单机游戏,Unity都能完全胜任. 请大家支持下“有宝藏官网”,有宝藏,最保障.致力于打造中国第一精品导购平台! Unity 4.2.0 官方最新破…
最近,需要使用 Python 对 MongodB 做一些简单的操作,不想使用各种繁重的框架.出于可重用性的考虑,想对 MongoDB Python 官方驱动 PyMongo 做下简单封装,百度一如既往的未能给我一个满意的结果,于是有了下文. [正文] PyMongo,MongoDB Python官方驱动 docs: https://api.mongodb.com/python/current/index.html github: https://github.com/mongodb/mongo-…
还是一如既往先把结构图放出来,上上个版本添加了redis的缓存,但是不满足我的需求,因为公司有项目要求是分布式所以呢,这里我就增加了mongoDb进行缓存分布式,好了先看结构图(1). 总的来说比较蛋疼,因为从来没有使用过mongoDB,从安装,到转为windows服务,设置权限等等,好吧这都是题外话. 在写这个MongoDB版本的时候遇到的一些问题,我先总结下: 1.MongoDb版本是官网最新版3.4.4,官方驱动为2.4.3,首先我的项目是以GUID做为主键,在往MongonDB中插入时遇…
首先到 https://github.com/mongodb/mongo-csharp-driver/downloads 下载Mongo官方驱动 下载完成后引用到项目中 public class ConnHelp { public static string ConnectionString = "mongodb://127.0.0.1:27017/qiao"; public static MongoDatabase GetDatabaseFromUrl(MongoUrl url) {…
最近在研究.net Core,因为公司的项目用到的都是Oracle数据库,所以简单试一下.net Core怎样连接Oracle. Oracle官方现在已经提供.net Core的官方驱动(预览版),也可以通过NuGet直接下载(推荐),下面来看具体步骤 首先使用visual studio 2017 创建一个.net core的控制台程序 项目建立好之后我们通过Nuget来安装Oracle驱动,在Nuget里搜索oracle.ManagedDataAccess.core(一定要勾选预览) 安装完毕…
目录 一.前言 1. 运行环境 二.前期准备工作 1. 创建 MongoDBContext MongoDb操作上下文类 2.创建测试类 3.创建测试代码 三.内嵌数组增加元素操作 1.Update.Set()方法 替换内嵌数组(不推荐使用) 2.Update.Push()方法 直接将元素压入内嵌数组(推荐) 3. Update.PushEach()方法 将多个元素压入内嵌数组(推荐) 四.内嵌数组删除元素操作 1. Update.Set()方法 替换内嵌数组(不推荐使用) 2. Update.P…
作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便. 官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads.下载后,还提供了一个酷似msdn的帮助文档. samus驱动:https://github.com/samus/mongodb-csharp/downloads. 下面就具体看看samus驱动,https:…
.net Core使用Orcle官方驱动连接数据库   最近在研究.net Core,因为公司的项目用到的都是Oracle数据库,所以简单试一下.net Core怎样连接Oracle. Oracle官方现在已经提供.net Core的官方驱动(预览版),也可以通过NuGet直接下载(推荐),下面来看具体步骤 首先使用visual studio 2017 创建一个.net core的控制台程序 项目建立好之后我们通过Nuget来安装Oracle驱动,在Nuget里搜索oracle.ManagedD…
1.背景 由于历史原因,笔者所在的公司原有的ES查询驱动采用的是 PlainElastic.Net, 经过询问原来是之前PlainElastic.Net在园子里文档较多,上手比较容易,所以最初作者选用了该驱动,而发布也由于历史原因都部署在 windows 服务器上,基于 .NET Framework开发. 后来由于迁移 .NET CORE 平台的需要,对代码进行了升级,同时部署平台也迁移至 CentOS7 服务器,升级过程比较顺利,由于没有使用特殊API,所以几乎没有对业务代码做更多的修改,同时…