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

來源:互聯網
上載者:User

上文: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 安裝

pip install mongoengine
串連

from mongoengine import *
connect(‘mongoengine_test’,host=’localhost’,port=27017) 定義文檔中的存放資料的欄位,還要繼承Document類,在這裡定義好模型限制,以後save的時候做驗證用得著

import datetimeclass 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 datetimeclass 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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.