簡體   English   中英

使用pymongo時是否存在類似的關系函數?

[英]Is there a where like relation function when using pymongo?

我有以下數據:

名為類別的集合,其中包含如下文檔:

{
    "cat":"Films Anglais",
    "path":"W:\\videos"
}

類別是唯一的(因為我使用upsert),或者我們還是承認它是類別。

一個名為rules的集合,其中包含如下文檔:

{
    "title":"braveheart",
    "regex":"^.*braveheart.*$",
    "cat":"Films Anglais"
}

我正在重復所有規則。 因此,我可以從“ rule ['cat']”規則中訪問貓。 我需要的是分類的路徑。

我知道我可以做到:

dest = ""
for category in categories.find():
    if category['cat'] == rule['cat']:
        dest = category['path']
        break

1)我希望該過程在數據庫端進行。 像category.find_one()。distinct('path')。where(cat = rule ['cat'])一樣? 我知道無效。

2)有沒有一種方法可以定義一種關系,這樣我就不需要重復cat字段了?

最后,我已經閱讀了關系系統和非關系系統之間的區別,但是在這種情況下,選擇是密封的。

對於1),您根本不想在這里或實際上一直使用服務器端javascript。 它很慢並且會阻止許多其他操作。 不要使用服務器端JavaScript嘗試在MongoDB中偽造聯接。

對於2),將path信息復制到rules文檔中似乎是最好的解決方案。 path多久更改一次? 與當前設置相比,嵌入path的成本是復制,並且如果path發生更改,則需要一組更昂貴的更新。 在沒有有關您的用例的進一步信息的情況下,對我而言這似乎是值得的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM