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



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

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

{
"_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"这样的产品。这将是一个单一的文档,包含来自亚马逊、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中也可以使用相同的语法。

最新更新