对特殊字符的不同命令

时间:2012-04-08 18:45:32

标签: python mongodb

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

这样的字符
'\n', '!' etc. 
The "Thread" field has entries like the following:

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

命令是:

collection.distinct(Thread)

关于此类属性的命令但失败了。 Map会在这些字符串上减少工作吗?还是有另一种解决方案吗?

2 个答案:

答案 0 :(得分: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?

感谢。

答案 1 :(得分:0)

你的问题没有确切意义,但你的意思是:

def do_1():
  pass

def do_2():
  pass

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

commands[c]()