基本上,我正在设计和开发使用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/