PS:很是不錯的mongoengine新手教程 前端
最近開始作一個Python + MongoDB的項目,用到了MongoEngine這個很是不錯的ORM工具,我將MongoEngine的文檔翻譯一部分出來,與你們分享。 python
安裝MongoEngine
爲了使用MongoEngine,咱們首先須要先下載一個MongoDB而且確保它能正常運行,你還須要安裝pymongo。 git
能夠用pip安裝MongoEngine: github
- $ pip install mongoengine
可是若是你沒有安裝setuptool,那麼下載一個
MongoEngine
,而後手動安裝
- $ python setup.py install
若是你想用最新得MongoEngine,能夠從GitHub上下載源碼,而後按以下安裝: web
- $ git clone git://github.com/hmarr/mongoengine
- $ cd mongoengine
- $ python setup.py install
ps:因爲mongoengine底層使用的是pymongo庫,因此安裝mongoengine的時候必定要安裝與其版本配套的pymongo版本,不然在使用的時候或出現調用pymongo上的錯誤。(通常建議安裝最新版的pymongo,不然要上網查下版本匹配)。 mongodb
鏈接MongoDB
鏈接一個運行的MongoDB實例,可使用connect( ) 函數。第一個參數是須要鏈接的數據庫名稱,若是該數據庫不存在,那麼就會新建一個相應的數據庫。若是該數據庫須要驗證登陸,那麼用戶名和密碼這些參數也須要提供。 數據庫
- from mongoengine import connect
- connect('project1', username='webapp', password='pwd123')
在默認狀況下,MongoDB的實例是運行在localhost的27017端口上,若是MongoDB是運行於別的地方,那麼就須要提供host和port參數:
- connect('project1', host='192.168.1.35', port=12345)
Uri方式的鏈接也是支持的
- connect('project1', host='mongodb://localhost/database_name')
在MongoEngine 0.6中添加了對多數據庫的支持。使用多數據庫的時候使用 connect( ),而且提供一個鏈接的別名,若是沒有提供別名就使用default。 app
在後臺裏面會使用 register_connection( )來存儲那些前端須要的全部別名數據。 webapp
單個的文檔也能經過在它們的元數據中提供一個db_alias來實現對多數據庫的支持。下面這個例子就使用了3個不一樣數據庫來存儲數據。 函數
- class User(Document):
- name = StringField()
-
- meta = {"db_alias": "user-db"}
-
- class Book(Document):
- name = StringField()
-
- meta = {"db_alias": "book-db"}
-
- class AuthorBooks(Document):
- author = ReferenceField(User)
- book = ReferenceField(Book)
-
- meta = {"db_alias": "users-books-db"}