[スパルタコードクラブ]ネットワーク開発総合クラス-第3週(3)


3-12 pymongo操作DBを使用

  • モンゴルDBとは?
    辞書データベース
  • pymongo基本コード
    from pymongo import MongoClient 👉🏻 モンゴル派
    client = MongoClient('localhost', 27017) 👉🏻 私のパソコンで稼働しているモンゴディビに接続します.
    db = client.dbsparta 👉🏻 '「dbsparta」のデバイス名で接続(ない場合は自動接続)
  • Ⅰ.insert:DBに情報を追加する

    doc = {'name':'김남준','age':28} 
    db.bts.insert_one(doc)
    ={「name」:「金南俊」,「age」:28},btsという集合に含まれる
    防弾少年団メンバーの名前が全て挿入された状態「波切り」では出力に変化はありませんが、「ROBO 3 T」でRefreshを押すとDBが挿入されていることが確認できます.

    Ⅱ-1.find:特定の情報を検索する

    same_ages = list(db.bts.find({'age':27},{'_id':False}))
    print(same_ages)
    27歳のメンバーを出力
    {'_id':False}: 
    出力から値「id」を除外
  • 「id」値とは?
    各データベースで自動的に作成される一意の値
  • これで出力成功👇🏻
    [{'name': '박지민', 'age': 27}, {'name': '김태형', 'age': 27}]

    Ⅱ-2.find:条件

    same_ages = list(db.bts.find({'age':27},{'_id':False}))
    for person in same_ages:
        print(person) 
    同じages(dictionary)をリスト形式で出力するには、繰り返し文(for)を使用します.
    👇🏻
    
    {'name': '박지민', 'age': 27}
    {'name': '김태형', 'age': 27}

    Ⅱ-3.find:無条件(すべての値を出力)

    same_ages = list(db.bts.find({},{'_id':False}))
    for person in same_ages:
        print(person)
    元の条件を削除(「age」:27)
    👇🏻
    {'name': '김남준', 'age': 28}
    {'name': '김석진', 'age': 30}
    {'name': '민윤기', 'age': 29}
    {'name': '정호석', 'age': 28}
    {'name': '박지민', 'age': 27}
    {'name': '김태형', 'age': 27}
    {'name': '전정국', 'age': 25}

    Ⅱ-4.find one:出力は1つのみ

    member = db.bts.find_one({'age':27},{'_id':False})
    print(member)
    27歳のメンバー1人のみ出力
    👇🏻
    {'name': '박지민', 'age': 27}
    これは教室にはない内容ですが、智敏がプリントアウトして、同じ条件で、先に次の値がプリントアウトされるようです.
    member = db.bts.find_one({'age':27},{'_id':False})
    print(member['name'])
    27歳のメンバーの「名前」が1人しか出力されません
    👇🏻
    박지민

    Ⅲ-1.upadate:データベース内の情報を新しい内容に変更する

    db.bts.update_one({'name':'전정국'},{'$set':{'age':19}})
    国の年齢を19歳に改める
    👇🏻 Refreshは19歳のデータ鐘国を見ることができます.

    Ⅲ-2.upadate multi:DBの情報を一度に変更

    db.bts.update_many({'age':28},{'$set':{'name':'구사즈'}})
    28歳のメンバーの名前を全て「旧サズ」に変更
    👇🏻
    一度に変更するとリスクが高くなりますが、実際にはあまり使いにくいコードです.

    Ⅳ.delete one:情報の削除

    db.bts.delete_one({'name':'방시혁'})
    bts collectionから方時赫という名前の値を削除します.
    余華感大発;
    👇🏻 g-リン
    ✔¥updateと同じようにdeleteもたくさんありますが、危険なのであまり使いにくいです.
    そしてこれは今日学んだすべての属性に対応しています.
    ✔¥collectionが正しく使用されているか
    今日の新知
    insert,find,update,deleteそして...
    方時赫年齢…^-^;
    -今日の開発ログの終了-