MongoDBの-pythonの操作にMongoDB

インストール

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")"})

  

おすすめ

転載: www.cnblogs.com/songzhixue/p/11203561.html