[英]Aggregate in pymongo : match on day of week of date
我有一個mongodb集合,我試圖從中提取一個子集,其中:
日期高於給定日期
日期是星期三,星期四或星期五
到目前為止,這是我的查詢:
for element in collection.aggregate( [
{ "$match": {
"date" : {"$gt" : earliest_date,
"$dayOfWeek" : { "$in": [0,1,2,3,4,5,6] }
}
}
},
{ "$sort": {"date": 1} },
{
"$group":
{
....
}
}]):
我得到這個錯誤
pymongo.errors.OperationFailure: unknown operator: $dayOfWeek
你能幫我嗎 ! 謝謝。
首先,您需要從日期字段中投影星期(星期幾),然后才能對其應用過濾器。 “ $ dayOfWeek”返回1到7的值,其中1(星期日)和7(星期六)。 因此,將條件放在投影場上。
for element in collection.aggregate([
{"$match": {
"date": {"$gt": earliest_date}
}
},
{"$project": {
"date": "$date",
"week": {"$dayOfWeek": "$date"},
'anyOtherField': '$anyOtherField'
}
},
{"$match": {
"week": {"$in": [4, 5, 6]}
}
{"$sort": {"date": 1}},
{
"$group":
{
....
}
}]):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.