我有一张这样的桌子:
# TABLE IN DB
| Cat | Date | ... datas ... |
| 1 | 11-02 | data2
| 2 | 11-04 | data2
| 1 | 12-01 | data1
| 2 | 12-01 | data1
| 2 | 12-03 | data3
| 2 | 12-04 | data4
我的挑战是为每个类别获取一个条目并选择一个特定的数据(这里我们选择 data1)。输出示例:
# TABLE RESULT
| Cat | Date | ... datas ... |
| 1 | 11-02 | data2
| 2 | 11-04 | data2
实际上我得到了一个数组中的所有类别编号和另一个数组中的所有数据。然后我创建两个循环“foreach”:
foreach ($array_cat as $cat){
foreach($array_data as $data){
MONGO_FIND_HERE...
}
}
因为集合非常大,并且有很多猫和数据,这可以进行大约 1000-5000 次查询,需要 10 到 20 秒才能完成。
我怎样才能让它更快,对不起,我是 MongoDB 的新手,但我喜欢它 :)
编辑1:简单的例子
| Cat | Date | ... datas ... |
| 1 | 11-02 | data2
| 2 | 11-04 | data2
| 1 | 12-01 | data1
| 2 | 12-01 | data1
| 2 | 12-03 | data3
| 2 | 12-04 | data4
我怎样才能每个类别只有一个具有最新日期和“data2”的条目?我应该使用什么结构/架构?
# TABLE RESULT
| Cat | Date | ... datas ... |
| 1 | 12-04 | data2
| 2 | 12-04 | data2
我应该使用什么机制?如何在不使用“for循环”的情况下做到这一点?我们有数组:array(1,2) 知道存在哪个类别。更好:=)?