mongoengine

http://docs.mongoengine.org/guide/querying.html#advanced-queries

安裝

pipenv install mongoengine

連接數(shù)據(jù)庫
  • connect("數(shù)據(jù)庫名")
    mongodb 沒有配置用戶權(quán)限,用的默認(rèn)設(shè)置茁计。
  • connect("數(shù)據(jù)庫名", host="主機(jī)名",port=端口號贡茅,username=,password=)
    要驗(yàn)證的方式
定義 表
  • 定義 類,繼承自Document
    類名缤灵,就是mongodb的集合名


增刪改查(CURD)

實(shí)例化對象膊升,添加屬性悼做,并調(diào)用 .save() 保存

查詢條件可以寫在objects()里,也可以寫在filter()里

  • Student.objects.first()
    返回第一個(gè)文檔皆串,是一個(gè)Student object對象
    通過 "." 操作符拿到相應(yīng)屬性殷费。
  • Student.objects.all()
    返回所有文檔嘹屯, 是列表攻询,由Student object對象組成。
  • Student.objects.filter()
    查詢條件州弟,用關(guān)鍵字參數(shù)傳進(jìn)去钧栖。
    返回Student object對象組成的 列表
    若不存在,返回 空列表婆翔。
  • Student.objects.filter().first()
    查詢滿足條件的第一條數(shù)據(jù)拯杠。
字符串查詢

表名.objects(字段__操作符=查詢條件).order_by()...
注意:字段后是2個(gè)下劃線

  • exact 完全匹配
  • iexact 完全匹配(忽略大小寫)
  • contains 包含該值
  • icontains 包含該值(忽略大小寫)
  • startswith 以該字符串開始
  • istartswith 以該字符串開始(忽略大小寫)
  • endswith 以該字符串結(jié)束
  • iendswith 以該字符串結(jié)束(忽略大小寫)
  • ne 不等于
  • gt(e) 大于(等于)
  • lt(e) 小于(等于)
  • not 對操作符取反,比如 age__not__gt=18
  • in 后面是一個(gè)列表啃奴,比如 name__in=["林沖"潭陪,"令狐沖"],找出這兩個(gè)人的數(shù)據(jù),滿足一條也可以,若都不存在依溯,返回空列表老厌。
  • nin in的取反
  • mod 取模,比如 age__mod=(2,0) 表示查詢出age除以2黎炉,余數(shù)是0的數(shù)據(jù)枝秤。

多條件查詢,使用Q,結(jié)合 "&" "|" 實(shí)現(xiàn)拜隧,
一個(gè) Q 類宿百,代表一個(gè)查詢條件。
from mongoengine.queryset.visitor import Q
.objects(Q() & Q())

  • 使用PyMongo語句查詢, raw前后都是雙下劃線洪添。
    表名.objects( __ raw __={} )
排序
  • 聲明 表 的時(shí)候垦页,定義排序。


    *
  • 查詢的時(shí)候干奢,排序痊焊。
    .order_by("+/-字段名")
    正負(fù)號,代表升降序忿峻。
抽出指定 字段

調(diào)用 .only() 方法薄啥,括號內(nèi)傳入指定 字段。
可以鏈?zhǔn)秸{(diào)用,比如: 表名.objects.only().only()
后一個(gè) only() 是添加字段

.exclude()方法逛尚,與 .only()相反垄惧。
通過 .reload("字段名") 可以重載該字段。

改 刪
  • update()
  • update_one()
  • delete()

寫法:update(操作符__字段=設(shè)置的值)
可以使用如下的操作符:

  • set 設(shè)置指定的值
  • unset 刪除指定的值
  • inc 自增一個(gè)指定的值
  • dec 自減一個(gè)指定的值
  • push 在 list 中绰寞, 添加一個(gè)值
  • push_all 在 list 中到逊, 添加多個(gè)值,多個(gè)值寫成列表的形式。
  • pull 與push相反滤钱。
  • pull_all 與push_all相反觉壶。
  • add_to_set 當(dāng)要添加的值存在,則忽略件缸,不存在铜靶,則添加。

aggregation methods

  • 表名.objects.count()
    計(jì)數(shù)他炊。
  • 表名.objects.sum("字段名")
    求和争剿。
  • 表名.objects.average("字段名")
    求平均數(shù)。
  • 表名.objects.item_frequencies("字段名")
    返回的是一個(gè)字典佑稠,key是字段名秒梅,value是該字段出現(xiàn)的次數(shù)。
    參數(shù) normalize:若為True, value將會(huì)是小數(shù)舌胶,所有字段的value相加為1.
  • 表名.objects.aggregate()
    第一種寫法:
    a = { 管道1:{ 表達(dá)式1 } }, { 管道2:{ 表達(dá)式2 } }
    表名.objects.aggregate(*a)
    注意 多個(gè)管道的時(shí)候捆蜀, a前面要加個(gè)星號
    第二張寫法:
    表名.objects.aggregate({},{},{}...)
    直接用花括號的形式寫,中間用逗號分隔辆它。
  • 表名.objects.distinct("字段名")
    返回一個(gè)列表誊薄,該字段名的值(不重復(fù)的)組成的一個(gè)列表。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锰茉,一起剝皮案震驚了整個(gè)濱河市呢蔫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌飒筑,老刑警劉巖片吊,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異协屡,居然都是意外死亡俏脊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門肤晓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爷贫,“玉大人,你說我怎么就攤上這事补憾÷眩” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵盈匾,是天一觀的道長腾务。 經(jīng)常有香客問我,道長削饵,這世上最難降的妖魔是什么窑睁? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮葵孤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘橱赠。我一直安慰自己尤仍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布狭姨。 她就那樣靜靜地躺著宰啦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饼拍。 梳的紋絲不亂的頭發(fā)上赡模,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音师抄,去河邊找鬼漓柑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辆布。 我是一名探鬼主播瞬矩,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锋玲!你這毒婦竟也來了景用?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惭蹂,失蹤者是張志新(化名)和其女友劉穎伞插,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盾碗,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媚污,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了置尔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杠步。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖榜轿,靈堂內(nèi)的尸體忽然破棺而出幽歼,到底是詐尸還是另有隱情,我是刑警寧澤谬盐,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布甸私,位于F島的核電站,受9級特大地震影響飞傀,放射性物質(zhì)發(fā)生泄漏皇型。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一砸烦、第九天 我趴在偏房一處隱蔽的房頂上張望弃鸦。 院中可真熱鬧,春花似錦幢痘、人聲如沸唬格。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽购岗。三九已至,卻和暖如春门粪,著一層夾襖步出監(jiān)牢的瞬間喊积,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工玄妈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乾吻,地道東北人髓梅。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像溶弟,于是被迫代替她去往敵國和親女淑。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容