国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Python中使用mongoengine操作MongoDB教程

2020-02-23 00:52:55
字體:
來源:轉載
供稿:網友

最近重新拾起Django,但是Django并不支持mongodb,但是有一個模塊mongoengine可以實現Django Model類似的封裝.但是mongoengine的中文文檔幾乎沒有,有的也是簡短的幾句介紹和使用.下面我就分享一下我在使用過程中所記錄下的一些筆記,可能有點亂.大家可以參考一下.
安裝mongoengine

easy_install pymongo # 依賴庫easy_install mongoengine

基本使用

from mongoengine import *from datetime import datetime# 連接數據庫connect('blog') # 連接本地blog數據庫# 如需驗證和指定主機名# connect('blog', host='192.168.3.1', username='root', password='1234')# 定義分類文檔class Categories(Document): ' 繼承Document類,為普通文檔 ' name = StringField(max_length=30, required=True) artnum = IntField(default=0, required=True) date = DateTimeField(default=datetime.now(), required=True)

和Django的model使用很類似,所以也不解釋什么.
插入

cate = Categories(name="Linux") # 如果required為True則必須賦予初始值,如果有default,賦予初始值則使用默認值cate.save() # 保存到數據庫

查詢和更新

文檔類有一個 objects 屬性.我們使用它來查詢數據庫.

# 返回集合里的所有文檔對象的列表cate = Categories.objects.all()# 返回所有符合查詢條件的結果的文檔對象列表cate = Categories.objects(name="Python")# 更新查詢到的文檔:cate.name = "LinuxZen"cate.update()
查詢數組 默認查詢數組"="代表的意思是in:
class Posts(Document): artid = IntField(required=True) title = StringField(max_length=100, required=True) content = StringField(required=True) author = ReferenceField(User) tags = ListField(StringField(max_length=20, required=True), required=True) categories = ReferenceField(Categories), required=True) comments = IntField(default=0, required=True)# 將會返回所有tags包含coding的文檔Posts.objects(tags='coding')

ReferenceField 引用字段:

通過引用字段可以通過文檔直接獲取引用字段引用的那個文檔:

class Categories(Document): name = StringField(max_length=30, required=True) artnum = IntField(default=0, required=True) date = DateTimeField(default=datetime.now(), required=True)class Posts(Document): title = StringField(max_length=100, required=True) content = StringField(required=True) tags = ListField(StringField(max_length=20, required=True), required=True) categories = ReferenceField(Categories)

插入引用字段

cate =Categories(name="Linux")cate.save()post = Posts(title="Linuxzen.com", content="Linuxzen.com",tags=["Linux","web"], categories=cate)post.save()

通過引用字段直接獲取引用文檔對象

一般文檔查詢會返回一個列表(盡管只有一個結果),我們想要獲得一個文檔對象可以使用索引獲取第一個文檔對象,但是mongoengine建議使用first()來獲取第一個:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天柱县| 谢通门县| 峨山| 崇礼县| 普宁市| 靖安县| 巴里| 顺昌县| 邮箱| 定兴县| 赣榆县| 瓮安县| 长乐市| 利辛县| 清徐县| 顺平县| 鄂州市| 永宁县| 星座| 乡城县| 霞浦县| 天门市| 望江县| 凉山| 喀喇沁旗| 新兴县| 禹州市| 云阳县| 威信县| 福海县| 简阳市| 若尔盖县| 永胜县| 纳雍县| 阳信县| 北宁市| 龙海市| 偃师市| 四会市| 秭归县| 鄄城县|