基本上,我正在用 Python 设计和开发一个应用程序,每天晚上都会执行并获取一个网站和关键字列表,并查询 Google API 以获取给定特定关键字的位置。
我想使用非 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/