簡體   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