首页 > 解决方案 > Mongo Query 获取过去 7 天内每分钟查看次数最多的前 10 个产品

问题描述

您好,我正在寻找 MongoDB 查询。所以下面是情况-

所以我有两个表第一个是 Pin,第二个是 mostLovedPins。下面是集合结构。

引脚型号

{
    "_id": {
        "$oid": "6149a35962711bd3ccba758d"
    },
    "_cls": "PinModel",
    "created_at": {
        "$date": "2021-09-21T09:12:18.974Z"
    },
    "updated_at": {
        "$date": "2021-09-21T09:12:18.974Z"
    },
    "store": "612de0ff161c359e0e15ea7b",
    "type": "CATALOG_PIN",
    "offer_type": "LAST_MINUTE_OFFER",
    "title": "Iphone 18",
    "description": "Food is good",
    "schedule_type": "IMMEDIATE",
    "schedule_days": ["SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"],
    "discount_unit": "PERCENT",
    "latlong": {
        "type": "Point",
        "coordinates": [81.4471435546875, 23.61432859499169]
    },
    "address": "",
    "city": "",
    "country": "",
    "pin": "",
    "payment_type": "INSTORE",
    "meta_info": {},
    "is_published": true,
    "is_approved_by_admin": true
}

MostLovedPins 集合

{
    "_id": {
        "$oid": "615563fde3c22a2cf6e3c500"
    },
    "_cls": "MostLovedPins",
    "created_at": {
        "$date": "2021-09-30T06:56:09.162Z"
    },
    "updated_at": {
        "$date": "2021-09-30T06:56:09.162Z"
    },
    "pin": {
        "$oid": "6153feebf14b15db64dfaef5"
    },
    "view_count": 3,
    "date": {
        "$date": "2021-09-30T00:00:00.000Z"
    },
    "users": []
}

我已经存储了查看次数和日期。例如,我今天对一个产品有 50 次浏览。所以我需要一个查询来满足以下条件:

  1. 在特定纬度附近的半径内获取最近 7 天的观看次数,然后添加它们。
  2. 选择过去 7 天内每分钟查看次数最多的产品中的前 10 名。

请帮我解决这个问题。

提前致谢。

标签: mongodbmongodb-queryaggregation-frameworkmongoenginepymongo-3.x

解决方案


推荐阅读