2015-04-01 14 views
0

我有以下數據:使用pymongo時有沒有類似的關係函數?

命名爲A收藏門類,包含像這樣的文件:

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

分類是唯一的(因爲我用UPSERT),或讓我們承認這一點是無論如何。

集合命名規則,包括像這樣的文件:

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

我遍歷所有的規則。所以我可以像規則[貓]那樣從規則中訪問貓。 我需要的是類別的路徑。

我知道我能做到:

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

1)我寧願過程是數據庫方面。像categories.find_one()。distinct('path')。where(cat = rule ['cat'])?我知道我殘疾。

2)有沒有辦法定義一種關係,以便我不需要重複cat字段?

最後,我已經瞭解了關係和非關係系統之間的區別,但在這種情況下,選擇是封閉的。

回答

1

對於1),你不希望在這裏使用服務器端JavaScript,或者真的。速度很慢,阻止了其他許多操作。不要使用服務器端JavaScript來嘗試和僞造MongoDB中的連接。

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

+0

該規則中的路徑是最初的。我想我把它移出來避免重複。但是您關於路徑更改的觀點在我的使用案例中是有效的(這是在我們的NAS中移動一些文件)。 – 2015-04-01 18:39:33

相關問題