使用 pymongo 查询 mongoDB(对 mongo/pymongo 来说是全新的)
Querying mongoDB using pymongo (completely new to 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' 这样的产品。这将是一个包含 URLs 和来自亚马逊、eBay 等多家零售商的价格的单个文档
现在如果一个新的 URL 进入系统,我需要查询这个 URL 是否已经存在于我们的数据库中。这样做的明显方法是迭代每个产品文档的每个报价,并查看 product_url 字段是否与输入 URL 匹配。这将需要将所有文档加载到内存中,并逐一遍历每个产品的报价。现在我的问题出现了-
有没有更简单的方法来实现这个?使用 pymongo?
或者我的数据库架构需要更改,因为这个基本的 check_if_product_url_exists() 太复杂了?
MongoDB 使用 dot notation.
提供数组内搜索
因此您的查询将是:
db.collection.find({'offers.product_url': 'url - of -a - product.com'})
相同的语法适用于 MongoDB shell 或 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' 这样的产品。这将是一个包含 URLs 和来自亚马逊、eBay 等多家零售商的价格的单个文档
现在如果一个新的 URL 进入系统,我需要查询这个 URL 是否已经存在于我们的数据库中。这样做的明显方法是迭代每个产品文档的每个报价,并查看 product_url 字段是否与输入 URL 匹配。这将需要将所有文档加载到内存中,并逐一遍历每个产品的报价。现在我的问题出现了-
有没有更简单的方法来实现这个?使用 pymongo? 或者我的数据库架构需要更改,因为这个基本的 check_if_product_url_exists() 太复杂了?
MongoDB 使用 dot notation.
提供数组内搜索因此您的查询将是:
db.collection.find({'offers.product_url': 'url - of -a - product.com'})
相同的语法适用于 MongoDB shell 或 pymongo。