在 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" returns 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":
{
....
}
}]):
我有一个 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" returns 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":
{
....
}
}]):