python - Mongodb 我可以构造这些数据吗

标签 python mongodb

基本上,我正在用 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/

相关文章:

python - 在 ubuntu 18 中哪里可以找到 certifi 文件夹

mongodb - 为什么mongodb的文档中存储键名

node.js - 使用nodejs在mongoDB oplog集合中查找每个新文档不起作用(光标似乎变得无效或死了)

node.js - 如何增加 Node.js 中脚本的最大执行时间?

python - 在一行上打印 `numpy.ndarray`

android - jnius.find_javaclass ,jnius.JavaException : Class not found 'android/webkit/WebView'

python - 通过增加数字对嵌套列表进行排序

javascript - 如何将数据库嵌入到我的 vuejs 应用程序中?

java - 我的 java 应用程序抛出一个异常,显示 Invalid BSON field name Name

python - 对seaborn histplot 中的重叠条有一些指示