2016-04-11 5 views
0

私はMongoDBを初めて使用しており、すべてのフィールドのテーブルを照会する必要があります。MongoDB:select * from tablename

下に述べたように、私は私のコードを持っている:

dataset = db.collection.find({}) 
for d in dataset: 
    print d 

出力:

{u'_id': ObjectId('570be40a30b147fbba6f523b'), u'type': u'min_hits', u'value': u'100'} 
{u'data': [u'remote', u'temprary', u'ipnodes'], u'_id': ObjectId('570be47d30b147fbba6f523c'), u'type': u'box_list'} 

どのように私は列

min_hits and box_list

の値が、私は以下の方法を試してみました得ることができます

print d['min_hits'] 

が、私はエラーの下に取得する:

print d['min_hits'] 
KeyError: 'min_hits' 
+0

予想される結果は何ですか。 – styvane

答えて

1

あなただけfind_one()を使用してそれらを個別に照会している必要がありますようですね:

min_hits = db.collection.find_one({"type": "min_hits"})["value"] 
box_list = db.collection.find_one({"type": "box_list"})["data"] 

それとも、あなたもtypevalueまたはdataを取得することを意図して:

dataset = db.collection.find({}) 
for d in dataset: 
    data_type = d["type"] 
    data_value = d.get("value", d.get("data", "No value or data set")) 

    print(data_type, data_value) 
+0

詳細な例と説明がありがとう – Prakash