ラベル MongoDB の投稿を表示しています。 すべての投稿を表示
ラベル MongoDB の投稿を表示しています。 すべての投稿を表示

2017年9月6日水曜日

[Python][MongoDB]PyMongo:データの挿入

test4.py
#-*- coding: utf-8 -*-
import pymongo
import pytz

#######################################################################
# Main function
#######################################################################
if __name__ == '__main__':
# MongoDBに接続するためのclientを作成する
client = pymongo.MongoClient()

# Databaseに接続する
db = client.test

# Collectionを取得する
collection = db.tbl1

# insert()
data = {
'message': 'thank you',
'value' : 30
}
id = collection.insert(data)
print('id=%s' % (id))

print('\n')
print('find()')
documents = collection.find({'_id':id})
for doc in documents:
#print(doc)
print('%s\t%s\t%d' % (doc['_id'], doc['message'], doc['value']))
実行結果
$ python test4.py
id=59af9cdce138234fdf70d696

find()
59af9cdce138234fdf70d696 thank you 30

[Python][MongoDB]PyMongo

PyMongoはPythonからMongDBを使うためのAPI

インストール

# yum install python-pymongo

データの表示

#-*- coding: utf-8 -*-
import pymongo
import pytz

#######################################################################
# Main function
#######################################################################
if __name__ == '__main__':
# MongoDBに接続するためのclientを作成する
client = pymongo.MongoClient()

# Databaseに接続する
db = client.test

# Collectionを取得する
collection = db.tbl1

# find()
print('find()')
documents = collection.find()
for doc in documents:
#print(doc)
print('%s\t%d' % (doc['message'], doc['value']))

print('\n')
print("find({'message':'hello'})")
documents = collection.find({'message':'hello'})
print('count=%d' % (documents.count()))
for doc in documents:
#print(doc)
print('%s\t%d' % (doc['message'], doc['value']))

print('\n')
print("find({'value':{'$gte':10}})")
documents = collection.find({'value':{'$gte':10}})
print('count=%d' % (documents.count()))
for doc in documents:
#print(doc)
print('%s\t%d' % (doc['message'], doc['value']))
実行結果
$ python test3.py
find()
hello 10
goodbye 25

find({'message':'hello'})
count=1
hello 10

find({'value':{'$gte':10}})
count=2
hello 10
goodbye 25

[MongoDB]dump

dump手順

  1. dbpathの場所を確認する。
    # ps aux | grep mongod
    
  2. mongodを止める。
    > use admin
    > db.shutdownServer()
    > quit()
    
  3. dump実行。
    # mongodump --dbpath /var/lib/mongodb --out ~/mongodb_dump_20170906
    

[CentOS][MongoDB]インストール

CentOS 7にMongoDBをインストール・起動する手順

インストール

# yum install mongodb
# yum install mongodb-server

サーバー起動

# systemctl start mongod

自動起動を有効にする

# systemctl enable mongod

[MongoDB]基本操作

データベースの新規作成

> use test
switched to db test

データベースの状態確認

> db.stats()
{
  "db" : "test",
  "collections" : 0,
  "objects" : 0,
  "avgObjSize" : 0,
  "dataSize" : 0,
  "storageSize" : 0,
  "numExtents" : 0,
  "indexes" : 0,
  "indexSize" : 0,
  "fileSize" : 0,
  "dataFileVersion" : {

  },
  "ok" : 1
}

データベースの削除

> use test
> db.dropDatabase()

データ挿入

> db.tbl1.insert({message:'hello', value:10})
WriteResult({ "nInserted" : 1 })
> db.tbl1.insert({message:'goodbye', value:20})
WriteResult({ "nInserted" : 1 })

登録データの表示(SELECT * FROM tbl1;)

> db.tbl1.find()
{ "_id" : ObjectId("59af8c93ce7c2c41694720f5"), "message" : "hello", "value" : 10 }
{ "_id" : ObjectId("59af8ca5ce7c2c41694720f6"), "message" : "goodbye", "value" : 20 }

条件指定しての検索(SELECT)

> db.tbl1.find({"message":"hello"})
{ "_id" : ObjectId("59af8c93ce7c2c41694720f5"), "message" : "hello", "value" : 10 }
> db.tbl1.find({"value":{$gt:15}})
{ "_id" : ObjectId("59af8ca5ce7c2c41694720f6"), "message" : "goodbye", "value" : 20 }
> db.tbl1.find({"value":{$gte:10}})
{ "_id" : ObjectId("59af8c93ce7c2c41694720f5"), "message" : "hello", "value" : 10 }
{ "_id" : ObjectId("59af8ca5ce7c2c41694720f6"), "message" : "goodbye", "value" : 20 }

データの更新(UPDATE)

> db.tbl1.find({"message":"goodbye"})
{ "_id" : ObjectId("59af8ca5ce7c2c41694720f6"), "message" : "goodbye", "value" : 20 }
> db.tbl1.update({"message":"goodbye"},{$set:{"value":25}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.tbl1.find({"message":"goodbye"})
{ "_id" : ObjectId("59af8ca5ce7c2c41694720f6"), "message" : "goodbye", "value" : 25 }

DB一覧表示

> show dbs;

コレクション一覧表示

> use test
switched to db test
> show collections;