【MongoDB】setup

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’)

 

Leave a Reply