我实际上在处理MongoDb时遇到麻烦。MongoDb,查询最后一个,并由
我需要:
- 得到有关现场
- 像所有的最后条目
- 的:SELECT MAX(ID),外键FROM t_table GROUP BY FOREIGNKEY
我知道我们可以用mongodb使用$ last,但是我根本不知道如何继续。
我想:
db.collection.aggregate(
[
{
$group:
{
_id: "$zone._id",
lastRegistered: { $last: "$_id" }
}
}
]
)
但一点儿也不似乎给我我需要什么
与实例
编辑根据这三:
{ _id: 55d5a01f9f58d2cc0eb79f5d,
controlDate: Thu Aug 20 2015 11:38:40 GMT+0200 (Paris, Madrid (heure d’été)),
zone:
{ _id: 55cb5bb42d191d2022c5c266,
zoneName: 'Syphon 1',
},
actif: true
},
{ _id: 55d59f129f58d2cc0eb79f5c,
controlDate: Fri Aug 21 2015 07:34:12 GMT+0200 (Paris, Madrid (heure d’été)),
zone:
{ _id: 55cb5bb42d191d2022c5c266,
zoneName: 'Syphon 1',
},
actif: true
}
{ _id: 55d5a01f9f58d2cc0eb79f5e,
controlDate: Fri Aug 20 2015 08:38:40 GMT+0200 (Paris, Madrid (heure d’été)),
zone:
{ _id: 55cb5bb42d191d2022c5c278,
zoneName: 'Other zone',
},
actif: true
},
我需要得到:
{ _id: 55d59f129f58d2cc0eb79f5c,
controlDate: Fri Aug 21 2015 07:34:12 GMT+0200 (Paris, Madrid (heure d’été)),
zone:
{ _id: 55cb5bb42d191d2022c5c266,
zoneName: 'Syphon 1',
},
actif: true
}
{ _id: 55d5a01f9f58d2cc0eb79f5e,
controlDate: Fri Aug 20 2015 08:38:40 GMT+0200 (Paris, Madrid (heure d’été)),
zone:
{ _id: 55cb5bb42d191d2022c5c278,
zoneName: 'Other zone',
},
actif: true
},
这意味着:我需要获取按区域_id分组的这个集合的最后(通过id或日期,没关系)。 (2行,因为我有2个数据集对一个区域来说(我只需要最后的),我最需要的其他区(仅1线等等..))
你知道我是什么意思?
代码示例似乎与文档示例不匹配。您指的是您的文档中不存在的字段'$ foreignField'。另外,你正在用'_id'进行分组,因为'_id'总是唯一的(除非你之前做了一个'$ unwind'聚合步骤)。也许你的意思是按'zone._id'分组? – Philipp
这是一个例子。即时将要修改它以配合真实的背景 – mfrachet