在Python中使用ORM(MongoEngine)控制MongoDB的方法

上文:http://blog.csdn.net/u013205877/article/details/75957573
PyMongo是一个低级的MongoDB的Python驱动器(我一般称为客户端),它封装了 MongoDB API,并通过JSON与MongoDB通信,PyMongo将MongoDB的数据映射成Python的内置类型。
MongoEngine 是一个Document-Object Mapper (想一下ORM, 但它是针对文档型数据库),Python通过它与MongoDB交互。你可能会说那PyMongo也是ORM啊,在Python中一切都是对象,但我们所说的ORM中的Object在指Python中的自定义类,而不是内置类型。MongoEngine或MongoKit将MongoDB的数据映射成自定义类实例,它们都是基于PyMongo的。
我们可以跟关系型数据库的Python客户端MySQLdb,以及ORM SQLAlchemy/Django ORM比较一下,PyMongo相当于MySQLdb,MongoEngine相当于SQLAlchemy,SQLAlchemy是基于MySQLdb之上的,MongoEngine是基于PyMongo的。
MongoEngine是一个ORM

  1. 安装
pip install mongoengine
  1. 连接

from mongoengine import *
connect(‘mongoengine_test’,host=‘localhost’,port=27017)

  1. 定义文档中的存放数据的字段,还要继承Document类,在这里定义好模型限制,以后save的时候做验证用得着
import datetime

class Post(Document):
    title = StringField(required=True, max_length=200)
    content = StringField(required=True)
    author = StringField(required=True, max_length=50)
    published = DateTimeField(default=datetime.datetime.now)

required:设置必须;

default:如果没有其他值给出使用指定的默认值

unique:确保集合中没有其他document有此字段的值相同

choices:确保该字段的值等于数组中的给定值之一

4.完整的插入保存过程

from mongoengine import *

connect('mongoengine_test',host='localhost',port=27017)

import datetime

class Post(Document):
    title = StringField(required=True, max_length=200)
    content = StringField(required=True)
    author = StringField(required=True, max_length=50)
    published = DateTimeField(default=datetime.datetime.now)

post_1 = Post(
    title='Sample Post',
    content='Some engaging',
    author='scott'
)
post_1.save()
print(post_1.title)

post_1.title = '张昆'

post_1.save()
print(post_1.title)

下面就是"向对象的特性"和"关联其他文档"了以及更多特性,进阶内容到这看下:http://docs.mongoengine.org/guide/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值