2012-04-08 15 views
0

私はJSONs(フィールズ:スレッド、作成者、子数)が個別のコマンド

'\n', '!' etc. 
The "Thread" field has entries like the following: 

"Thread": "\n````1111Hellow What is you name----....." 

文字列属性でのMongoDBに保存されている(基本的にスレッドの名前はフォーラムからクロール)のようなも持つ文字を、コマンドは次のとおりです。

collection.distinct(Thread) 

このような属性のコマンドは失敗しましたが、失敗しました。そのような文字列のマップは、より良い作業を減らすことができますか?それとも別の解決策がありますか?

答えて

1

私はこの問題を再現しようとしましたが、できませんでした。私はpymongoバージョン2.0.1とMongoバージョン2.1.1-preを使用しています。ここで私はiPythonで何を試したのですか?

In [13]: collection.save({"_id":1, "Thread": "\n````1111Hellow What is you name----....."}) 
Out[13]: 1 

In [14]: collection.find_one() 
Out[14]: {u'Thread': u'\n````1111Hellow What is you name----.....', u'_id': 1} 

In [15]: collection.distinct("Thread") 
Out[15]: [u'\n````1111Hellow What is you name----.....'] 

In [16]: 

"distinct"メソッドには入力として文字列が必要です。別のコマンドに関するドキュメントは、次のURLにあります。 「http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Distinct」

これが問題の原因でない場合は、エラーを生成するために行った手順とエラーメッセージ自体を印刷しますか?さらに、どのバージョンのMongoとpyMongoを使用していますか?

ありがとうございました。

+0

まあ、おそらく私が例として入れた文字列は働いた。私はもう一度やり直します。しかし、ありがたいことに、Map Reduceは私のケースで働いていたので、私はそれに固執しています。試してくれてありがとう。 – codious

0

あなたの質問の正確な意味がありませんが、あなたが意味するか:

def do_1(): 
    pass 

def do_2(): 
    pass 

commands = { 
    '\n': do_1(), 
    '!': do_2(), 
    # ... 
} 

commands[c]() 
+0

私はいくつかの情報を質問に入れました...今はっきりしていますか?私は基本的に 'スレッド'フィールドをグループ化しようとしていますが、 'distinct'はそれらには作用しません。文字列をグループ化するソリューションはありますか? – codious

関連する問題