【发布时间】:2014-11-23 04:26:55
【问题描述】:
我正在尝试构建一个查询以返回符合此条件的所有帐户的 ObjectId:
- 状态不等于-1
- created_at 小于或等于 30 天前的午夜 UTC
- created_at 一个月中的某天等于今天的某天
我能够执行 #1 和 #2,但我被困在 #3 并且结果中还包括 ObjectId。
Account._get_collection().aggregate([
{ "$match": {
"status": { "$ne": -1 },
"created_at": { "$lte": datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) - datetime.timedelta(days=30), }
}},
{ "$group": {
"_id": {
"dayOfMonth" : { "$dayOfMonth": "$created_at" },
},
}},
{ "$project": {
"_id": "1"
}}
])
我知道比赛部分中的日期可能应该是向上的,并且需要在组部分中添加一些内容以返回 ObjectId。
我错过了什么?
【问题讨论】:
-
能否请您从收藏中发布一个示例文档?
标签: python mongodb aggregation-framework