pymongoでmongodbへデータを追加する
5月18日のエントリでmognodbへ某データを投入しました。
この元となるデータには、IDや氏名、電話番号などひと通り必要な情報は入っているのですが、唯一「所属」のデータがありません。東京都所属の人ならわかりますよね。所属データです。
他県だとそうでもないのでしょうが、東京都の場合はこのデータってわりと重要だったりします。
そこで、このデータをmongodbへ追加。
元データを準備
所属情報を準備します。名前をキーにしたりすると面倒なのでメンバーIDをキーにします。こんなファイルを作成。
1234567,月組 3521456,花組 (以下ずらっと)
pymongoでスクリプトを作成
上記で作成したファイルを一行づつ読み込んで、mongodbからメンバーIDをキーにしてfind。
findしたものはディクショナリになっているので、これに所属データを追加。
#!/usr/bin/python # -*- coding:utf-8 -*- import pymongo conn = pymongo.Connection() db = conn["test"] collection = db["members"] #コレクションを作成 datafile=open("./syozoku.csv","r") #所属データファイルをオープン for line in datafile.readlines(): line = line[:-1] #行末の改行(\n)を削除 id_name = line.split(",") #splitして(メンバーID,所属)というリストを作成する。 data = collection.find_one({"メンバーID":id_name[0]}) #mongodbからデータ読み込み。 data['所属'] = id_name[1] #所属データを追加 collection.save(data) #mongodbへ追加 datafile.close()
updateでなくてもsave()でOK。objectIdが一致しているので上書きしてくれるようです。