我實際上在處理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