2013-11-23 26 views
0

我想對文檔字段的數據類型實現一些約束,但對ODM的任何其他功能(我懷疑我只使用pymongo)不感興趣。是否存在一個輕量級的包,我可以用它來添加約束到我的收藏領域?如何在monogodb字段上實現約束

或者這只是在輸入插入數據庫之前通常在python中完成的?例如,像:

def varchar_20(input): 
    return re.match(r'^\w+$', input) > 0 and len(input) <= 20 

同時,將這一約束內python檢查有可能造成對中高容量的寫入應用顯著的性能問題?

回答

1

MongoDB無法驗證服務器上的約束。這是在客戶端完成的工作。根據豬的漫遊語言,一些驅動程序提供了一種檢查一些基本約束的方法,雖然它們通常非常簡單,比如字符串的長度。

許多對象層提供了一種自定義驗證的方法,這是您插入自定義邏輯的地方。 PyMongo沒有,但是有很多額外的框架可以使用PyMongo並添加驗證:http://api.mongodb.org/python/2.4.1/tools.html

至於可伸縮性,如果沒有更多的細節,很難說。

+0

這些是我遇到的ODM/ORM類框架,除了他們的模式執行能力之外並沒有真正感興趣。我想我可以將其中的一個用於其驗證功能。也許這就是答案,我沒有見過明。 – bqui56

+0

聽起來像你需要支持的一部分,或者你需要寫你自己的。我不能說哪個是適合你的,但是如果你保持簡單,很多人不會增加很多perf命中。 – WiredPrairie