0

我有存储在 mongodb 中的 JSON(字段:线程,作者,子计数),字符串属性(基本上是从论坛爬取的线程的名称)也有类似的字符,

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

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

命令是:

collection.distinct(Thread)

此类属性的命令但失败。Map reduce 在此类字符串上会更好地工作吗?还是有其他解决方案?

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

一个可能的问题是“distinct”方法需要一个字符串作为输入。可以在此处找到有关 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 回答