2012-04-08 4 views
0

나는 JSONs (필드 : 스레드, 저자, 자녀 수)이별개의 명령

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

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

을 문자열 속성을 MongoDB를 저장 (기본적으로 스레드의 이름은 포럼에서 기어)와 같은도 가진 자, 명령은 다음과 같습니다.

collection.distinct(Thread) 

이러한 특성에 대한 명령은 실패했지만 실패했습니다. 윌지도는 그러한 문자열에 대한 작업을 줄입니다? 아니면 다른 해결책이 있습니까?

답변

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

0

귀하의 질문은 정확한 의미가 있지만, 의미하지 않습니다

def do_1(): 
    pass 

def do_2(): 
    pass 

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

commands[c]() 
+0

질문에 더 많은 정보를 넣었습니다 ... 지금은 명확합니까? 기본적으로 '스레드'필드를 그룹화하려고하지만 '고유'는 해당 필드에서 작동하지 않습니다. 이러한 문자로 문자열을 그룹화하는 솔루션이 있습니까? – codious