2011年5月29日日曜日

redis-pyでセットから指定した値を削除する

redis-pyでセットから指定した値を削除するには、以下のコードのようにsremを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('set1')
# セットに値を追加
rc.sadd('set1', 'value1')
rc.sadd('set1', 'value2')
rc.sadd('set1', 'value3')
# セットから指定した値を削除する
rc.srem('set1', 'value1')
for value in rc.smembers('set1'):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年5月28日土曜日

PyMongoでコレクションをリネームする

PyMongoでコレクションをリネームするには、以下のコードのようにrenameを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
# コレクションをリネームする
conn.local.members.rename("platinum_members")

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年5月27日金曜日

redis-pyでセットからランダムに値を取得する

redis-pyでセットからランダムに値を取得するには、以下のコードのようにsrandmemberを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('set1')
# セットに値を追加
rc.sadd('set1', 'value1')
rc.sadd('set1', 'value2')
rc.sadd('set1', 'value3')
# セットからランダムに値を取得する
print(rc.srandmember('set1'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年5月26日木曜日

PyMongoでdistinctした値を取得する

PyMongoでdistinctした値を取得するには、以下のコードのようにdistinctを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("sales_by_year_area")
col = conn.local.sales_by_year_area
# データをinsert
col.insert({"year":2009, "area":"North", "sales":100})
col.insert({"year":2009, "area":"South", "sales":150})
col.insert({"year":2010, "area":"North", "sales":200})
col.insert({"year":2010, "area":"South", "sales":250})
col.insert({"year":2011, "area":"North", "sales":300})
col.insert({"year":2011, "area":"South", "sales":350})
# distinctした値を取得
for obj in col.distinct("year"):
 print obj

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年5月25日水曜日

redis-pyでセットからランダムに値を取得して削除する

redis-pyでセットからランダムに値を取得して削除するには、以下のコードのようにspopを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('set1')
# セットに値を追加
rc.sadd('set1', 'value1')
rc.sadd('set1', 'value2')
rc.sadd('set1', 'value3')
# セットからランダムに値を取得して削除する
print(rc.spop('set1'))
for value in rc.smembers('set1'):
 print('set1:' + value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年5月24日火曜日

PyMongoでGroup byした総和を求める

PyMongoでGroup byした総和を求めるには、以下のコードのようにgroupを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("sales_by_year_area")
col = conn.local.sales_by_year_area
# データをinsert
col.insert({"year":2009, "area":"North", "sales":100})
col.insert({"year":2009, "area":"South", "sales":150})
col.insert({"year":2010, "area":"North", "sales":200})
col.insert({"year":2010, "area":"South", "sales":250})
col.insert({"year":2011, "area":"North", "sales":300})
col.insert({"year":2011, "area":"South", "sales":350})
# 地域毎の総売上を表示する
for obj in col.group(
key={"area":True},
condition={},
initial={"csum":0},
reduce="function(obj,prev){prev.csum += obj.sales;}"):
 print str(obj[u"area"]) + ":" + str(obj[u"csum"])

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年5月23日月曜日

redis-pyでセットの値をソートする

redis-pyでセットの値をソートするには、以下のコードのようにsortを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('set1')
# セットに値を追加
rc.sadd('set1', 'value5')
rc.sadd('set1', 'value2')
rc.sadd('set1', 'value1')
rc.sadd('set1', 'value3')
rc.sadd('set1', 'value4')
# セットの値をソートする
for value in rc.sort('set1', alpha=True):
 print(value)
# セットの値を降順にソートする
for value in rc.sort('set1', desc=True, alpha=True):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)