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);//当前操作量+1 jingjiaOperationDay.Update(updatequery, setsspcount); }
只有在数据修改时才可能会用到这种需要指定下表,如果在查询时,就可以直接用对象.属性去查询,例如:Department.User.name