2012-08-08 2 views

답변

3

문제는 의 결과가 방법은 커서가 아닌 커서 아닌 객체이다

u['forSong'] = self.request.db.song.find({}, {'_id': 1}) 

객체의 목록입니다 찾을 수 있다는 것입니다. 그래서 당신은 반환 변환해야 커서는 작업을 수행하기위한 나열하려면 다음 "forSong"필드에 {객체 ID '_id'} 같은 dicts의 목록을 저장합니다

u['forSong'] = list(self.request.db.song.find({}, {'_id': 1})) 

. 실제로 객체 ID 목록을 수신하려면 다음과 같이 추가 변환해야합니다.

from operator import itemgetter 
... 
u['forSong'] = map(itemgetter('_id'), 
        list(self.request.db.song.find({}, {'_id': 1}))) 
+0

목록이 아닌 _id 객체 자체를 저장하려면 어떻게해야합니까? – zakdances

+0

아니요, 1 개의 키 '_id'가있는 dict입니다.이 값은 mongo의 ObjectId입니다. 위의 업데이트 된 답변에서 추가 한대로 ObjectId 개체의 일반 목록을 수신하려면 이러한 사전에서 값을 가져와야합니다. –

+0

self.request.db.lyrics.find()에 대한 내 줄을 변경했습니다. [ 'forSong'] = map (itemgetter ('_ id'), list (self.request.db.song.find ({}, { 'id': 1})) self.request.db.lyrics.save u)하지만 여전히 구문 오류가 발생했습니다. – zakdances