基本上,我正在设计和开发使用Python的应用程序,该应用程序每晚执行一次,并执行一个网站和一个关键字列表,并查询Google API以获取给定特定关键字的位置。

我想使用none sql方法,并且使用Mongodb提供的对象似乎是最好的方法,但是我对如何在数据库内部构造数据感到困惑。

每晚将产生新数据,其中将包含50个关键字,并且我假设它们的位置将存储在其自己的对象中,并且可以通过特定的url进行标识。

因此,是否有可能在给定URL的情况下查询数据库并使用过去30天或60天的数据范围?我很困惑是否能够取回所有对象

最佳答案

该结构的主要要求是每天查询的能力。

假设我们有一个网站www.stackoverflow.com和X关键字。
基本文档形状如下所示:

{
    _id : objectId, // this have timestamp
    www : "www.stackoverflow.com",
    rankings : [{
            "key1" : "val1"
        }, {
            "key2" : "val2"
        }
    ],

}


然后,如果要查看每个key1的排名历史记录,可以使用聚合框架进行查询:

db.ranking.aggregate(
    [{
            $unwind : "$rankings"
        }, {
            $match : {
                        "rankings.key1" : { $exists : true}
            }

        }
    ])


和响应将类似于:

{
    "_id" : ObjectId("584dbe04f4ce077869fee3dc"),
    "www" : "www.stackoverflow.com",
    "rankings" : {
        "key1" : "val1"
    }
},
{
    "_id" : ObjectId("584dbe07f4ce077869fee3dd"),
    "www" : "www.stackoverflow.com",
    "rankings" : {
        "key1" : "val1"
    }
}


寻找更多关于在聚合框架中分组以发现mongo功能的信息!

关于python - Mongodb我可以构造这些数据吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41090441/

10-11 22:32
查看更多