mongodb に、"service" なるコレクションがあったとします。
”type"という列の値のリスト抽出して、‘’空文字と合わせたリストを作ります。
”type"列が存在しないレコードもあることを考慮します。
・・・というお題。
import pymongo def open_database(dbname): client = pymongo.MongoClient('mongodb://xxx.xxx.xxx.xxx', 27017) db = client[dbname] return db
db = open_database('sampledb') types = [''] for t in set((r['type'] for r in db['service'].find({'type':{'$exists':'true'}},{'type':1}))): types.append(t)
''空文字 と、MongoDB の serviceコレクションの 'type' のリストとして、types を生成
厳密にソートするなら、
types = [''] for t in sorted(set((r['type'] for r in db['service'].find({'type':{'$exists':'true'}},{'type':1}))), reverse=False): types.append(t)
ソート逆順
types = [''] for t in sorted(set((r['type'] for r in db['service'].find({'type':{'$exists':'true'}},{'type':1}))), reverse=True): types.append(t)
長いので、こう書いてもOK
types = [''] for t in sorted( set((r['type'] for r in db['service'].find({'type': {'$exists': 'true'}}, {'type': 1}))), reverse=True): types.append(t)