2012-04-08 90 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