簡體   English   中英

在pymongo中匯總:與日期中的星期幾匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM