首页 > 解决方案 > 如何知道产品最后一次更新 MongoD 的时间?

问题描述

我正在做一个项目,我想按 2 个月内或确定日期未更新的产品进行过滤。(在过去 2 个月或我想要的任何其他日期没有新商品价格) 我想在 python 中编写脚本。

我所有的数据库都是遵循这个结构的 json:

并访问它我做 mongo_client[db_name][coll_name] 然后我通常使用 .find() 或 .aggregate()

{
    "_id" : ObjectId("6188f511091533324af78fbf"),
    "market" : "x",
    "product" : "apple",
    "item_price_history" : [ 
        {
            "item_price" : 219.0,
            "date" : ISODate("2021-04-08T15:30:43.000Z")
        }, 
        {
            "item_price" : 248.0,
            "date" : ISODate("2021-04-22T08:02:28.000Z")
}

你知道我该怎么做吗?我使用最新版本的 Python 和 Robo 3T-1.4

提前致谢

标签: pythonpython-3.xmongodbrobo3t

解决方案


import dateutil.parser

list_to_sort = {
     "market" : "x",
     "product" : "apple",
     "item_price_history" : [
         {
             "item_price" : 219.0,
             "date" : "2021-04-08T15:30:43.000Z"
         },
         {
             "item_price" : 248.0,
             "date" : "2021-04-22T08:02:28.000Z"
         }]
}

candidates = list_to_sort.values()

for item in candidates:
    if isinstance(item,list):
        list_to_sort = item



def myfunc(item):
    time = dateutil.parser.parse(item["date"])
    return time.timestamp()

list_to_sort.sort(key=myfunc)
print(list_to_sort)

这将根据自定义函数对列表进行排序myfunc


推荐阅读