mongoDBとpymongoのインストール
Ubuntu 14.04
## install ##
https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/?_ga=1.240417411.1898667525.1463549990
sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv EA312927
echo “deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start
### python driver ###
sudo apt-get install python3-pip
sudo pip3 install pymongo
※エラーが出たら
easy_install -U setuptools
OSX
## install ##
brew install mongodb
## 自動でPC起動時に起動 ##
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
## 手動で起動 ##
mongod --config /usr/local/etc/mongod.conf
## python
brew upgrade python3
## pymongo install
brew install pip3
## pymongo install
pip3 install pymongo
pip list | grep pymongo
# データベース接続(クライアント)
$ python3
>>> import pymongo >>> cli = pymongo.MongoClient() >>> cli = pymongo.MongoClient(host='localhost', port=27017)
# データベース作成(sample)
>>> db=cli.sample
#コレクション作成(テーブル)
>>> db.user
#コレクションに一件追加(レコード追加)
>>> col=db.user >>> col.insert_one({'name': 'ryo', 'age': 10})
#データを一件検索
col.find_one()
col.find_one({‘name’: ‘ryo’})
#データを検索(複数県)
list(col.find())
list(col.find({‘age’:{‘$gt’:15}}))
list(col.find({‘age’:{‘$lt’:15}}))
list(col.find({‘name’: {‘$regex’: ‘^b’}}))
#and/or条件
list(col.find({‘$and’:[{},{}]}))
list(col.find({‘$or’:[{},{}]}))
list(col.find({‘$and’: [{‘age’: {‘$gt’: 10}}, {‘name’: {‘$regex’: ‘^b’}}]}))
[{‘_id’: ObjectId(‘570380ea87f0746e34587a5f’), ‘name’: ‘bar’, ‘age’: 20}]
# 特定のフィールド findの第二引数で指定
list(col.find({}, {‘name’: True, ‘_id’: False}))
[{‘name’: ‘foo’}, {‘name’: ‘bar’}, {‘name’: ‘baz’}]
#sort
list(col.find().sort(‘age’)) // 順
list(col.find().sort(‘age’,-1)) // 逆
#検索数の制限
list(col.find().limit(1))
# update ※検索条件、更新フィールド/値($set)
col.update({‘name’: ‘bar’}, {‘$set’: {‘age’: 5}})
list(col.find({},{‘_id’:False}))
#update ※検索条件、更新フィールド/値($set)、multi=Trueをつける)
col.update({‘age’: {‘$gt’:3}}, {‘$set’: {‘age’: 100}}, multi=True)
col.update({‘name’: ‘bar’}, {‘$set’: {‘age’: 5}})
col.update({‘name’: ‘ryo’}, {‘$set’: {‘age’: 10}})
# 削除
col.remove({‘age’:5})
# コレクション削除
col.drop()
db.drop_collection(‘user’)
# データベース削除
client.drop_database(‘sample’)