2012-04-08 6 views
0

Ich habe JSONs (Fields: Thread, Autoren, Kinderzahl) in mongodb mit String-Attribute gespeichert (im Grunde Name der Threads aus einem Forum gekrochen) auch mit Zeichen wie,eindeutiger Befehl auf speacial Zeichen

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

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

die Befehl ist:

collection.distinct(Thread) 

Der Befehl für solche Attribute aber fehlgeschlagen. Will Map die Arbeit an solchen Saiten verbessern? Oder gibt es eine andere Lösung?

Antwort

1

ich dieses Problem zu reproduzieren versucht, war aber nicht in der Lage. Ich benutze Pymongo Version 2.0.1 und Mongo Version 2.1.1-Pre. Hier ist, was ich in ipython versucht:

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

Ein mögliches Problem ist, dass die „distinct“ Methode eine Zeichenfolge als eine Eingabe erfordert. Die Dokumentation zu dem einzelnen Befehl finden Sie hier: "http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Distinct"

Wenn dies nicht die Ursache für Ihr Problem ist, können Sie bitte die Schritte, die Sie zum Generieren des Fehlers verwendet haben, sowie die Fehlermeldung selbst ausgeben? Welche Versionen von Mongo und pyMongo verwenden Sie?

Danke.

+0

naja, wahrscheinlich hat die Saite ich als Beispiel gearbeitet. Ich werde es nochmal versuchen. Aber glücklicherweise funktioniert Map Reduce in meinem Fall, also bleibe ich dabei. Danke, dass du es ausprobiert hast. – codious

0

Ihre Frage macht keinen genauen Sinn, aber tun Sie bedeuten:

def do_1(): 
    pass 

def do_2(): 
    pass 

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

commands[c]() 
+0

Ich habe ein paar mehr Informationen in der Frage ... Ist es jetzt klar? Ich versuche im Grunde, das 'thread' Feld zu gruppieren, aber 'distinct' arbeitet nicht an ihnen. Gibt es eine Lösung zum Gruppieren von Strings mit solchen Zeichen? – codious

Verwandte Themen