连接一个运行的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。
在后台里面会使用 register_connection( )来存储那些前端需要的所有别名数据。
单个的文档也能通过在它们的元数据中提供一个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"}