Arrays MongoDB-排除内部数组,但包括它';s计数
我有一个名为Arrays MongoDB-排除内部数组,但包括它';s计数,arrays,mongodb,include,count,Arrays,Mongodb,Include,Count,我有一个名为devicesegments的表,其中每一行都包含一个名为devices的大型数组。由于设备阵列的大小,我被要求不要将其包含在我查询的页面中,该页面列出了所有devicesegments,而只包含它们的计数。这可能吗 我以前在做什么: 一个简单的db.devicesegments.find() 我现在做的是: db.devicesegments.find({},{devices:0}) 我想要达到的目标: db.devicesegments.find({},{devices:0,de
devicesegments
的表,其中每一行都包含一个名为devices的大型数组。由于设备阵列的大小,我被要求不要将其包含在我查询的页面中,该页面列出了所有devicesegment
s,而只包含它们的计数。这可能吗我以前在做什么: 一个简单的
db.devicesegments.find()
我现在做的是:
db.devicesegments.find({},{devices:0})
我想要达到的目标:
db.devicesegments.find({},{devices:0,devices.length:1})
类似于将(设备)计数为设备计数的
计数 Ashkay,目前Mongo没有办法这么做。正如@rompetroll所说,应用程序应该在每个文档上保留一个“count”字段,并在更改数组中的条目数时小心地添加它。然后在查询文档时,排除数组,如下所示:
db.collection.find({}, {devices:0})
如果您愿意运行MongoDB 2.1,这是一个开发版本,那么聚合框架提供了一种在查询中计算数组大小的方法:
阿什凯,目前Mongo无法做到这一点。正如@rompetroll所说,应用程序应该在每个文档上保留一个“count”字段,并在更改数组中的条目数时小心地添加它。然后在查询文档时,排除数组,如下所示:
db.collection.find({}, {devices:0})
如果您愿意运行MongoDB 2.1,这是一个开发版本,那么聚合框架提供了一种在查询中计算数组大小的方法:
由于目前无法做到这一点,如果不在我的表中包含新的设备计数
,我应用的临时修复方法是从数据库中获取所有数据,以及设备
数组,并针对每一行,为devices.length添加一个字段,然后在发送数据之前删除devices
数组。由于目前无法执行此操作,如果不在我的表中包含一个新的device\u count
,我应用的临时修复程序是从数据库中获取所有数据,与设备
数组一起,为每一行添加一个设备.length
字段,然后在跨行发送数据之前删除设备
数组