[英]PyMongo aggregate by taking most recent value of field
我想對文檔進行分組,並且對於某些字段,請使用具有最新時間戳記的記錄值(即,最近插入/更新的值)。 在下面的示例中,我想按用戶ID和電話分組,並獲取該組中最近時間戳記的電子郵件。 我的最初策略是按時間戳記降序排序,並采用第一個值進行聚合,如下所示:
import pymongo
...
pipeline = [
{
"$sort": {"timestamp": -1 }
},
{ "$group": {
"_id": {
"userId": "$userId",
"userPhone": "$userPhone",
"userEmail": { "$first" : "$userEmail"},
"count": {"$sum": 1}
}
}
]
但是我遇到以下錯誤:
pymongo.errors.OperationFailure: Unrecognized expression '$first'
pymongo是否有等效的$ first函數可用?
您的管道語法不正確。 蓄能者走在自己的領域。
就像是
pipeline = [
{ "$sort": {"timestamp": -1 } },
{ "$group": { "_id": { "userId": "$userId", "userPhone": "$userPhone" }, "userEmail": { "$first" : "$userEmail"}, "count": {"$sum": 1} } }
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.