2012-04-08 92 views
0

我有JSONs(字段:主题,作者,孩子数)存储在MongoDB中与字符串属性(基本上线程的名字从论坛中抓取)也有人物,如,不同的命令

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

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

的命令是:

collection.distinct(Thread) 

命令对这样的属性,但失败了。 Map会在这样的字符串上更好地减少工作吗?还是有另一种解决方案?

回答

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

一个可能的问题是,“独特”方法需要一个字符串作为输入。关于不同命令的文档可以在这里找到: “http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Distinct”

如果这不是您问题的原因,能否请您打印您生成错误的步骤以及错误消息本身?另外,你使用的是Mongo和pyMongo的哪个版本?

谢谢。

+0

好吧,可能是我作为例子工作的字符串。我会再试一次。不过谢天谢地,Map Reduce在我的情况下工作,所以我坚持这一点。感谢您的尝试。 – codious 2012-04-10 09:25:11

0

你的问题不作具体意义,但你的意思是:

def do_1(): 
    pass 

def do_2(): 
    pass 

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

commands[c]() 
+0

我在问题中提供了更多信息......现在清楚了吗?我基本上是试图将“线程”字段分组,但“独特”并不适用于他们。有没有解决方案来组合这些字符的字符串? – codious 2012-04-08 19:17:14