如何获取MongoDB中子数组的最小值/最大值?
|
因此,我遇到了使用数组标记文档的情况,例如:
tags: [
\'Housing\' : 10,
\'Retail\' : 1,
\'Stocks\' : 25,
]
我只是自己保存标签,但最近又添加了数字,因为我需要知道排名/位置。因此,标签旁边的数字代表该标签所标记的文档集中文档的等级。
在某些地方它变得很棘手,但是现在我只是想弄清楚如何使用这些标签中的一个或多个添加另一个文档。假设我创建了一个新文档,并将其标记为Housing。它的等级需要设置为11,但是我怎么知道呢?
到目前为止,我唯一能找到的解决方案是进行映射/缩小以遍历记录并找到该标记的最大值,然后添加一个并保存。现在,大多数记录可能每个都只有2-3个标签,但从理论上讲可能有10-15个标签。无论哪种方式,一旦有很多标签和很多记录,map / reduce似乎都会费劲费力的。
有没有更简单的方法,还是我应该开始寻找解决此问题的另一种方法?
编辑:
让我给您一些有关我要解决的问题的更多详细信息...我正在以幻灯片/转盘方式显示图像。幻灯片涵盖了不同的类别,因此,使用上方的类别/标签,您可以查看所有图像,也可以仅查看房屋,零售,股票等来源的图像。目前,我只有一些已定义的类别,但是\这些很有可能随着时间的推移而扩展。它们需要按标记进行过滤,并按日期(最新的)排序。
现在,到目前为止,我一直在这样做。当我想在卡座中间选择任意图像时,就会出现问题。假设您要加载6个月前上传的“ housing_chart.gif \”。我不想加载6个月的图像以获取该图像(这基本上是我现在正在做的)。相反,我想加载该特定图像,然后能够对下一个/上一个图像进行分页。
但是,为了“轮播”轮播上的图片,我必须知道该图片在结果中的位置...而无需实际获取所有结果并进行计数。因此,我认为对他们进行排名将是可行的方法,但这也会导致其他问题。我真的不喜欢创建另一个集合来存储行列的想法,但这可能是解决问题的最有效方法。
没有找到相关结果
已邀请:
1 个回复
授巨