Skip to content

Instantly share code, notes, and snippets.

@YoshihitoAso
Last active September 16, 2021 04:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YoshihitoAso/9632091 to your computer and use it in GitHub Desktop.
Save YoshihitoAso/9632091 to your computer and use it in GitHub Desktop.
[MongoDB][Python]pythonからmongodbを操作する

PythonからMongoDBを操作する

PyMongoのインストール方法

pythonから利用するためのモジュールとしてPyMongoを利用する。

インストール方法は簡単で、pipであれば以下でOK。

$ pip install pymongo

サンプル

pymongoを利用したMongoDB接続のサンプル(localhost接続の例)

①検索(find)

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from pymongo import Connection

#コネクション作成
con = Connection('localhost', 27017)

#コネクションからsampleデータベースを取得
db = con.sample

#sampleデータベースからfooコレクションを取得
col = db.foo

print "========find_one========"
print col.find_one()

print "========find========"
for data in col.find():
    print data

print "========find_query========"
for data in col.find({u'a':10}):
    print data

②データの登録(insert)

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from pymongo import Connection

#コネクション作成
con = Connection('localhost', 27017)

#コネクションからsampleデータベースを取得
db = con.sample

#sampleデータベースからfooコレクションを取得
col = db.foo

#データの更新
col.insert({'b' : 10})

for data in col.find({'b':10}):
    print data

※ちなみにinsertは何度でも実行可能。その場合、レコード単位に新たなObjectIdが付与される。

③更新

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from pymongo import Connection

#コネクション作成
con = Connection('localhost', 27017)

#コネクションからsampleデータベースを取得
db = con.sample

#sampleデータベースからfooコレクションを取得
col = db.foo

data = col.find_one({'b':10})
data['b'] = 11
#データの更新
col.save(data)

for data in col.find({u'b':11}):
    print data

con.disconnect()

④データの削除(remove)

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from pymongo import Connection

#コネクション作成
con = Connection('localhost', 27017)

#コネクションからsampleデータベースを取得
db = con.sample

#sampleデータベースからfooコレクションを取得
col = db.foo

print "===before==="
for data in col.find():
    print data

col.remove({'b':11})

print "===after==="
for data in col.find():
    print data

con.disconnect()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment