我在mongodb中存储了JSON(字段:线程,作者,子计数),其中包含字符串属性(基本上是从论坛中抓取的线程的名称),也有像
这样的字符'\n', '!' etc.
The "Thread" field has entries like the following:
"Thread": "\n````1111Hellow What is you name----....."
命令是:
collection.distinct(Thread)
关于此类属性的命令但失败了。 Map会在这些字符串上减少工作吗?还是有另一种解决方案吗?
答案 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]()