インストール
pymongoをインストールするPIP
接続MongoDBの
pymongo インポートMongoClient my_client = MongoClient(" 127.0.0.1 "、27017 ) MDB = my_client [ " stutent " ] #は、ライブラリ名の接続指定された 印刷を(MDB) #のデータベース(MongoClient(ホスト= [ '127.0.0.1:27017'] 、document_classは= dictの、tz_aware = Falseを、接続する=真)、 'stutent') 位= Trueの接続が成功している接続
#1 document_classは= dictのクエリ結果が辞書の形式で返されます
削除のデータを変更して再検索
加えます
#単一のデータ追加 RES = mdb.user.insert_one({ " 名":" 少年" }) プリント(res.inserted_id) #の代わりに文字列 を印刷(タイプ(res.inserted_id)) #<クラスbson.objectid.ObjectId 「> #データの複数の追加 RESを= mdb.stutent.insert_many([{ " 名前":" 口ひげ" }、{ " 名前":" 花" }]) プリント(res.inserted_ids) #【のObjectId( '5d2f247ee6390ef6741370a7')のObjectId( '5d2f247ee6390ef6741370a8')] プリント(型(res.inserted_ids)) #<クラスのリスト」>
ビュー
最初の予選のデータを検索します
RES = mdb.stutent.find_one({ " 名":" 小黑" }) RES = mdb.stutent.find_one({ " _id ":のObjectId(" 5d2ed96e38887b85450ed6d8 ")})
すべてのデータを検索
mdb.stutent.find =のRES({}) #1 戻る反復可能 プリント(リスト(RES)) " "" RESにおけるIため: プリント(I) " ""
「」 " -私たちは、すべてのデータを検索するために照会 ページをレンダリングするために必要なJSONデータをフロントページ場合- -ではなく、文字列型の_idはなくのObjectIdタイプ、および直接JSONに変換することはできません -そして我々は、次の2つを使用することができますオブジェクトIDの方法は、JSONに変換されます "「」
最初の方法は、効率が高くありません
インポートJSONは res_list = [] のためにユーザにRES: #_idの値は、文字列リストに変換 ユーザ[ " _id " ] = STR(user.get(" _id " )) res_list.append(ユーザー) #のリスト直列化 RET = json.dumps(res_list) 印刷(RET)
第二の方法、高効率
リスト=のRES(mdb.stutent.find({}))#1 戻る反復可能 インポートJSONの ためのインデックス、ユーザに列挙(RES): RES [インデックス] [ " _id " ] = STR(user.get(" _id " )) RET = json.dumps(RES) を印刷(RET)
修正
#の変更はすべてのデータの最初の条件満たす RES = mdb.stutent.update_one({ " 名":" 花"、{} " $のSET ":{ " 名前":" 小2件のB " }}) #の修正遵守をすべてのデータの条件、それは追加されません RES = mdb.stutent.update_many({ " 名":" 花" }、{ " $のSET ":{ " 名":" 小さな2 Bを"、"年齢":80 }}) プリント(RES) #{ 'N':1、 'nModified':1、 'OK':1.0、 'updatedExisting':真}
バッチ操作
S = { " 名前":{ " $ REGEX ":" 胡" }} #ファジーマッチ修飾 データ= { " $のSET ":{ " 性別":" 男"、" 趣味":" 煙"、「ドリンク" ]} } mdb.stutent.update_many(S、データ)
データベース内の辞書データの方法を修正することができます
#は、データを返すように修飾された第一のデータ形式となる辞書 RES = mdb.stutent.find_one({ " 名":" 口ひげ" }) #'のObjectId( '5d2f246d7fb0bb7a411f350c'):{ '_id'名':' HU ''セックス':'男 ''趣味':[' 煙''ドリンク「]} 印刷(RES) RES [ " セックス" ] = " MALE " #のメモリレベルの適応辞書データは、本方法の全ては、辞書を使用することができる 。#のデータベースの更新方法の更新を mdb.stutent.update_one({ 「名」:「口ひげ」 {} "$セット":{ " セックス":res.get(" 性別" )}}) #{ "_id":のObjectId(" 5d2f246d7fb0bb7a411f350c ")、 "名": "小胡"、 "性別"、 "男性"、 "趣味":["抽烟」、 "喝酒"]}
削除
#資格の最初のデータ削除 RES = mdb.stutent.delete_one({ 「名」:「ビッグ剥き出しの花を」}) #が削除されたデータの数を返します 印刷(res.deleted_count) #を条件に沿って、すべてのデータを削除 RES mdb.stutent.delete_many =({ " 名":" 小2件のB " }) プリント(res.deleted_count)
その他の操作
インポートpymongo 「」「 降順下降 小から大への昇順 。」「」 #1 戻る反復可能 #並び替え RES = mdb.stutent.find()。ソート(「年齢」、pymongo.ASCENDING) 用 I でRES: 印刷(I) #選択 mdb.stu.find()の制限(2 ) #のスキップ mdb.stu.find()スキップ(2 ) #のタブ RES =リスト(mdb.stu.find() .sort(" 年齢"、pymongo.ASCENDING).limit(2).SKIP(4 )) を印刷(RES)
インポートのObjectId BSON クエリオブジェクトに#文字列のObjectId RES = mdb.user.find_one({ "_ ID :のObjectId( "5d2ed96e38887b85450ed6d8")"})