繁体   English   中英

使用 pymongo 查询 mongoDB(对 mongo/pymongo 来说是全新的)

[英]Querying mongoDB using pymongo (completely new to mongo/pymongo)

如果这个问题看起来太琐碎,请在评论中告诉我,我将进一步研究如何解决它。

我有一个名为 products 的集合,我在其中存储来自不同零售商的特定产品的详细信息。 文档的架构如下所示 -

{
    "_id": "uuid of a product",
    "created_at": "timestamp",
    "offers": [{
            "retailer_id": 123,
            "product_url": "url - of -a - product.com",
            "price": "1"
        },
        {
            "retailer_id": 456,
            "product_url": "url - of -a - product.com",
            "price": "1"
        }
    ]
}

产品的 _id 是系统生成的。 考虑像“iPhone X”这样的产品。 这将是一个包含来自多个零售商(如 Amazon、eBay 等)的 URL 和价格的单个文档。

现在如果一个新的 URL 进入系统,我需要查询这个 URL 是否已经存在于我们的数据库中。 执行此操作的显而易见的方法是迭代每个产品文档的每个报价,并查看 product_url 字段是否与输入 URL 匹配。 这需要将所有文档加载到内存中,并逐一迭代每个产品的报价。 现在我的问题出现了——

有没有更简单的方法来实现这一目标? 使用pymongo? 或者我的数据库架构需要更改,因为这个基本的 check_if_product_url_exists() 太复杂了?

MongoDB 提供使用点符号在数组内搜索。

所以你的查询是:

db.collection.find({'offers.product_url': 'url - of -a - product.com'})

相同的语法适用于 MongoDB shell 或 pymongo。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM