http://blog.sina.com.cn/s/blog_927f3c2401011937.html 图形工具

http://api.mongodb.org/csharp/current/html/R_Project_CSharpDriverDocs.htm C#API

http://docs.mongodb.org/manual/reference/method/  Shell命令

http://docs.mongodb.org/manual/ MongoDB官方文档

http://blog.michaelckennedy.net/2013/04/08/optimistic-concurrency-in-mongodb-using-net-and-csharp/ MongoDB.Kennedy

https://mongodb-documentation.readthedocs.org/en/latest/ecosystem/tutorial/serialize-documents-with-the-csharp-driver.html   Serialize Documents with the CSharp Driver(使用c#对实体进行序列化)

https://www.mongodb.com/thank-you/download/mongodb-enterprise 官网下载地址

http://www.ttlsa.com/mms/follow-me-to-use-mongodb-mms-services/ 随我来使用mongodb mms服务

当类体结构改变,删除了某个属性,或者某个属性的类型发生了改变?

1、属性的类型发生了改变

 public class Address { public ObjectId Id; public string ZipCode; }

 public class ZipCodeSerializer : BsonBaseSerializer { public override object Deserialize(BsonReader bsonReader, Type nominalType, Type actualType, IBsonSerializationOptions options) { var bsonType = bsonReader.CurrentBsonType; switch (bsonType) { case BsonType.Null: bsonReader.ReadNull(); return null; case BsonType.String: return bsonReader.ReadString(); case BsonType.Int32: return bsonReader.ReadInt32().ToString(); default: var message = string.Format("ZipCodeSerializer expects to find a String or an Int32, not a {0}.", bsonType); throw new BsonSerializationException(message); } } public override void Serialize(BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options) { if (value == null) { bsonWriter.WriteNull(); } else { bsonWriter.WriteString((string)value); } } }

 BsonClassMap.RegisterClassMap<Address>(cm => { cm.AutoMap(); cm.GetMemberMap(a => a.ZipCode).SetSerializer(new ZipCodeSerializer()); });
 

2、删除了某个属性

 var allDocuments = collectionToUpdate .FindAll();foreach(var document in allDocuments ){var oldFieldValue = document ["OldFieldName"];if(!document.Contains("NewFieldName")) document.Add("NewFieldName", oldFieldValue); document.Remove("OldFieldName"); collectionToUpdate.Save(document);}

 3、使用newtonsoft.json转换为json

 class ObjectId Converter:JsonConverter{publicoverridevoidWriteJson(JsonWriter writer,object value,JsonSerializer serializer){ serializer.Serialize(writer, value.ToString());}publicoverrideobjectReadJson(JsonReader reader,Type objectType,object existingValue,JsonSerializer serializer){thrownewNotImplementedException();}publicoverride bool CanConvert(Type objectType){returntypeof(ObjectId).IsAssignableFrom(objectType);//return true;}}

         public class ObjectIdConverter : TypeConverter

         {

             public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)

             {

                 if (sourceType == typeof(string))

                 {

                     return true;

                 }

                 return base.CanConvertFrom(context, sourceType);

             }

             public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)

             {

                 if (value is string)

                     return ObjectId.Parse((string)value);

                 return base.ConvertFrom(context, culture, value);

             }

             // Overrides the ConvertTo method of TypeConverter.

             public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)

             {

                 if (destinationType == typeof(string))

                 {

                     return ((ObjectId)value).ToString();

                 }

                 return base.ConvertTo(context, culture, value, destinationType);

             }

         }
 

使用:[TypeConverter(typeof(ObjectIdConverter))]

4、实体中排除某些字段,不写入到集合中

publicclassMyClass{ [BsonIgnore]publicstringSomeProperty{get;set;}}

或者使用初始化代码的形式,设置映射关系

BsonClassMap.RegisterClassMap<MyClass>(cm=>{cm.AutoMap();cm.UnmapProperty(c=>c.SomeProperty);});

5、在连接参数中设置用户名和密码

http://docs.mongodb.org/ecosystem/tutorial/authenticate-with-csharp-driver/

6、mongodb中时间为当前小时数 减 8

分       析:存储在mongodb中的时间是标准时间UTC +0:00 而咱们中国的失去是+8.00 。

解决方法:在datetime属性上增加特性

[BsonDateTimeOptions(Kind = DateTimeKind.Local)]

public DateTime Birth{get;set;}

MangoDB在C#中的使用的更多相关文章

  1. 明确MangoDB在企业中应用

    目录 1.MongoDB是什么? 2.为什么要用MongoDB? 3.主要特性 4.C/S服务模型 5.完善的命令行工具 6.几个shell实操 7.在Java中使用MongoDB 明确MongoDB ...

  2. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  3. NoSQL--couchdb

    Couchdb CouchDB是Apache组织发布的一款开源的.面向文档类型的NoSQL数据库.由Erlang编写,使用json格式保存数据.CouchDB以RESTful的格式提供服务可以很方便的 ...

  4. 在centos中安装mangodb

    1.下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_6 ...

  5. c#操作MangoDB 之MangoDB CSharp Driver驱动详解

    序言 MangoDB CSharp Driver是c#操作mongodb的官方驱动. 官方Api文档:http://api.mongodb.org/csharp/2.2/html/R_Project_ ...

  6. centos5.5下mangodb启动报错glibc

    mangodb启动报错glibc找不到(centos5.5) 报错形式 [root@test-172-16-0-139-ip mongodb-server]# /data/mongodb-server ...

  7. 在.Net Core中使用MongoDB的入门教程(一)

    首先,我们在MongoDB的官方文档中看到,MongoDb的2.4以上的For .Net的驱动是支持.Net Core 2.0的. 所以,在我们安装好了MangoDB后,就可以开始MangoDB的.N ...

  8. Asp.Net Core中使用MongoDB的入门教程,控制台程序使用 MongoDB

    内容来源  https://blog.csdn.net/only_yu_yy/article/details/78882446 首先,创建一个.Net Core的控制台应用程序.然后使用NuGet导入 ...

  9. 非关系统型数据库-mangodb

    第三十六课 非关系统型数据库-mangodb 目录 二十四 mongodb介绍 二十五 mongodb安装 二十六 连接mongodb 二十七 mongodb用户管理 二十八 mongodb创建集合. ...

随机推荐

  1. 3_PHP表达式_5_数据类型转换_类型强制转换

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP类型转换分为类型自动转换和类型强制转换. 3.5.2 类型强制转换 类型强制转换允许编程人员手动将变量的数据 ...

  2. 【转】SpringCloud学习笔记(一)——基础

    什么是微服务架构 简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进 ...

  3. CSS ,flex: 1的用处

    flex: 1:的妙用 首先  flex 是 flex-grow.flex-shrink.flex-basis的缩写. 当 flex 取值为一个非负数字,则该数字为 flex-grow 值,flex- ...

  4. 简单理解undefine和null的区别

    直接进入主题: 相同点:都表示“值的空缺” 不同点: null: 定义:一个空对象指针. 使用typeOf得到Object,相当于是一个特殊值 undefine: 定义:声明变量却未对其加以初始化的变 ...

  5. SAP Leonardo图片处理相关的机器学习服务在SAP智能服务场景中的应用

    本文作为Jerry最近正在做的一个项目的工作思路的梳理. 我们假设这样一个服务场景,技师上门维修某设备,发现设备上某零件损坏了,假设这位技师由于种种原因,没能根据自己的经验识别出这个零件的型号.此时技 ...

  6. Linux建立虚拟ip的方法

    文章来源 运维公会:Linux建立虚拟ip的方法   1.虚拟ip的介绍 虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址.数据包被发送到这个VIP地址, ...

  7. Android NDK 同时编译多个模块

    |-test |---Android.mk |---Application.mk |---sub1 |------Android.mk |------main.c |---sub2 |------An ...

  8. Linux学习笔记之二

    vim编辑器 :三种工作模式 vim /tmp/xueying.txt 命令模式 a.i.o/esc     \  :wq  保存并退出 /              \ 输入模式           ...

  9. 《Python编程:从入门到实践》第三章 列表简介 习题答案

    #3.1 names=['lpr','tjl','gnl','by','dqy']; print(names[0]); print(names[1]); print(names[2]); print( ...

  10. 算法102----360笔试(m进制不进位相加最大值)

    转自:https://blog.csdn.net/qq_18310041/article/details/99656445 import copy # m进制 m = 5 n = 5 line = [ ...