正如邁克說,你無法避免PyMongo - 其他所有的接口建立在它之上。這些其他接口可以說是不必要的。諸如在Django中使用的ORM在處理SQL時很有用,因爲它們減輕了創建SQL查詢和模式的複雜性,並將結果集解析爲對象。
PyMongo不過已經有了 - 查詢經過一個方便簡單的API,來自MongoDB的結果已經是對象了(根據定義,Python中的字典 - 相同的差異)。如果你覺得你真的需要用Python對象來裝飾你的Mongo文檔,那麼很容易在PyMongo中添加一個SON操縱器。這種方法的好處在於,您可以直接在PyMongo上編寫代碼,以後再添加其他功能,而無需在代碼和PyMongo之間插入新的API。
還剩什麼?模式創建和遷移在某種程度上是有用的,但幾乎就像臨時做的那樣 - 如果你正在考慮使用MongoDB,你希望擺脫傳統的SQL風格模型。另外,如果完全兼容Django的MongoDB ORM,你可能會獲得一些里程碑。任何不足之處,你可能會爲自己創造工作。
你不會後悔直接使用PyMongo。值得關注的,如果你有興趣在最高效率
最後一個選項是PyMongo的異步版本,在這裏:http://github.com/fiorix/mongo-async-python-driver
來源
2010-05-01 07:02:44
drg
您對異步(扭曲)驅動程序有任何親身經歷嗎?我想在一個Twisted應用中使用MongoDB並且遇到它,但PyMongo文檔指出[http://api.mongodb.org/python/current/faq.html?highlight=twisted#how-can-i-use -pymongo-with-an-asynchronous-socket-library-like-twisted](_這個項目目前比PyMongo_不穩定)。這可能只是一個關於第三方開源項目的標準聲明,但它也可能是真實的......這就是爲什麼我在尋找關於此庫的第一手評論... – 2012-01-10 00:34:16
這裏是異步驅動程序的作者。據說它不夠穩定,因爲PyMongo並不是最新的版本,由MongoDB(同一家公司)維護。我很久以前使用[官方文檔](http://docs.mongodb.org/meta-driver/latest/legacy/mongodb-wire-protocol/)編寫了異步驅動程序,並且驅動程序已經由許多貢獻者發展了很多包括爲MongoDB工作的人員。它實際上是穩定的,適合生產。 – fiorix 2014-05-27 03:27:20