本人系新接触MongoDB不久,属于MongoDB的菜鸟范畴.在使用MongoDB的过程中,总结了一些认识,在此总结跟大家分享.欢迎拍砖. 关于MongoDB的内容,在此就不做介绍了,网上有浩如烟海的文章介绍.本人不善理论,不妥之处,望指正. 想法来由:本人之前主要使用EF的CodeFirst方式做一些开发,EF的优劣在此不做评述.但已经习惯了EF式的代码编写方式,所以做了一个小的框架,来模拟实现类似EF代码风格,以减少开发者在实际使用过程中对MongoDB的关注和维护.为其取名为MongoDB…
本次改动的主要内容是实现MongoDB.Repository在MongoDB中建立索引. 建立索引主要使用MongoDB的官方驱动中EnsureIndex方法. 在MongoDB.Repository中建立一个BsonIndexAttribute,用以标识需要建立索引的属性. /// <summary> /// Indicates that this field or property should be index. /// </summary> [AttributeUsage(…
本次主要内容:修正MongoDB.Repository框架对多数据库的支持. 在之前的五篇文章中对MongoDB.Repository框架做了简单的介绍是实现思路.之前是考虑MongoDB.Repository框架是可以同时支持多数据,且已实现支持多数据库.但有个前提:实体的类型不能重复,即一个实体类型(即命名空间一样)只能存在一个数据库中.举例,X实体,如果注册在了A数据库,那么将不能注册在B数据库中. 虽然实现了该功能,但是存在一些问题和不足: 问题:只有在使用具体的实例进行数据库操作时才会…
本次改动的主要内容是实现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<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…
最近,需要使用 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进行缓存分布式,好了先看结构图. 总的来说比较蛋疼,因为从来没有使用过mongoDB,从安装,到转为windows服务,设置权限等等,好吧这都是题外话. 在写这个MongoDB版本的时候遇到的一些问题,我先总结下: 1.MongoDb版本是官网最新版3.4.4,官方驱动为2.4.3,首先我的项目是以GUID做为主键,在往MongonDB中插入时遇到的是…
想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类似.这里我们先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 下载地址: http://github.com/mongodb/mongo-csharp-driver/downloads 编译之后得到两个dll MongoDB.Driver.dll:顾名思义,驱动程序 MongoDB.Bson.dll:序列化.Json相…
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…