0

私はJSON(フィールド:スレッド、作成者、子数)をmongodbに保存しており、文字列属性(基本的にはフォーラムからクロールされたスレッドの名前)にも次のような文字が含まれています。

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

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

コマンドは次のとおりです。

collection.distinct(Thread)

そのような属性に対するコマンドですが、失敗しました。MapReduceはそのような文字列での作業をさらに改善しますか?または別の解決策はありますか?

4

2 に答える 2

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]: 

考えられる問題の1つは、「distinct」メソッドが入力として文字列を必要とすることです。個別のコマンドに関するドキュメントは、次の場所にあります:「http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Distinct」

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

ありがとう。

于 2012-04-09T15:20:50.743 に答える
0

あなたの質問は正確には意味がありませんが、あなたはどういう意味ですか:

def do_1():
  pass

def do_2():
  pass

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

commands[c]()
于 2012-04-08T19:06:16.253 に答える