Mongo对数据的存储非常随意,需要修改对象中的数组对象时,就会变得比较复杂。

类中的类对象可以直接通过“.”例如:Department.User.name

类中的对象User是数组时可以用Department.$.name写入数据,但是更新时就必须要用Department.1.name

这种写法要指明数组下表,看上去是不是觉得很刁。

附一段代码吧:便于理解

  var sspoper = jingjiaoperationday.sspoper.FirstOrDefault(e => e.opertype.Equals(operationtype) && e.ssp.Equals(ssp));
if (sspoper != null)
{
var indexoper = jingjiaoperationday.sspoper.IndexOf(sspoper);
var updatequery = Query.And(queryoperationday, Query.EQ("sspoper." + indexoper + ".opertype", operationtype), Query.EQ("sspoper." + indexoper + ".ssp", ssp));
var setsspcount = Update.Set("sspoper." + indexoper + ".count", sspoper.count + );//当前操作量+1
jingjiaOperationDay.Update(updatequery, setsspcount);
}

只有在数据修改时才可能会用到这种需要指定下表,如果在查询时,就可以直接用对象.属性去查询,例如:Department.User.name

C#对Mongodb数组对象操作的更多相关文章

  1. jQuery.each(object, [callback])数组对象操作--jQuery 对象访问 $().each(callback)

    jQuery.each(object, [callback]) 通用例遍方法,可用于例遍对象和数组. 不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象.回调函数拥 ...

  2. JQUERY-事件-动画-类数组对象-添加自定义API

    正课: 1. 事件: 2. 动画: 3. 类数组对象操作: 4. 添加自定义API: 1. 事件: 1. 页面加载后执行: 2个时机 1. DOM内容加载完成: 仅包括html, js DOMCont ...

  3. OC学习篇之---数组对象的引用计数问题和自动释放池的概念

    之前一片文章中我们介绍了OC中的两个关键字@property和@synthesize的使用的使用: http://blog.csdn.net/jiangwei0910410003/article/de ...

  4. MongoDB学习笔记~官方驱动嵌套数组对象的更新

    回到目录 对于数组对象mongodb本身是支持的,不过对于数组的更新,mongodb的Csharp驱动目前只支持一级,即你的对象里包含数组,而数组又包括数组,这表示两层,这在更新子数组时,Csharp ...

  5. Numpy数组对象的操作-索引机制、切片和迭代方法

    前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...

  6. js对数组对象的操作以及方法的使用

    js对数组对象的操作以及方法的使用 如何声明创建一个数组对象: var arr = new Array(); 或者 var arr = []; 如何移除所有数组中数据? arrayJson.dataL ...

  7. JsonCpp操作数组对象

    JsonCpp操作数组对象 概述 ​ Json格式数据中,除了简单的String类型和一些非String类型,也有像各种高级语言中的数组类型一般的数组对象,且Json数组在实际开发中使用频率也比较高, ...

  8. java:在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作

    在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 //在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 List<String> a ...

  9. 在Javascript中数组对象(json)里元素相同的操作

    1.数组对象元素相同,分组显示   let arry = [ { expensedate: '2018/09/29', amount: 1, type: '交通费' }, { expensedate: ...

随机推荐

  1. 【转】matlab的textscan与textread区别

    1.基本语法textscan的基本语法是:C = textscan(fid, 'format') C = textscan(fid, 'format', N) 其中fid为fopen命令返回的文件标识 ...

  2. HDU 2561

    F - 第二第二 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Prac ...

  3. Java 中各种空(""、\u0000、null)的区别?

  4. 找工作String类(重点,背诵)(本质是一个类)

    一个顶层设计者眼中只有2个东西接口,类(属性,方法) 无论String 类 , HashMap实现类 , Map接口 String str = "Hello" ;    // 定义 ...

  5. auto_ptr & share_ptr & unique_ptr

    Using auto_ptr, you don’t need think about the memory deallocation, but there are also many argument ...

  6. 利用反射C#获取事件列表

    在程序设计中有时候需要动态订阅客户自己的事件,调用完成后又要删除以前订阅的事件.因为如果不删除,有时会造成事件是会重复订阅,导致程序运行异常.一个办法是用反射来控件事件列表.清空方法代码如下: /// ...

  7. java_main

    Java中用户向系统传递参数的三种基本方式 main方法 在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的 ...

  8. KiCad 国内下载镜像收集

    KiCad 国内下载镜像收集 KiCad EDA 5.1.0 https://mirrors.dglinux.com/kicad/windows/stable/kicad-5.1.0_1-x86_64 ...

  9. gitlab不小心把sign-in取消了怎么恢复

    环境和版本 [root@linux-node1 etc]# ll /var/cache/yum/x86_64/7/gitlab-ce/packages/ total 292928 -rw-r--r-- ...

  10. Dynamic dispatch

    Dynamic dispatch动态调度.动态分发 In computer science, dynamic dispatch is the process of selecting which im ...