2012-12-17 5 views
0

내가 pymongo에 find_and_modify 사용하려고를 사용하여는 Pymongo는 find_and_modify - 슬라이스

다음 구문이 사람이 왜

posts.find_and_modify(query={'permalink':permalink,'comments':{'$slice':[ordinal,1]}},update={'$inc':{'num_likes':1}},upsert=True) 
을 설명 할 수 pymongo.errors.OperationFailure 실패 것 같다 (이에 나는 아주 새로운 오전)

게시물은 유효한 수집하고있는 int

+0

이것은 M101 과정의 최종 연습용입니다. 그렇지 않니? 나는 당신에게 답을 주겠다. 그러나 슬라이스를 사용하지 말 것을 권한다. ({ 'comments.2.data'}는 주석 배열에서 항목을 선택합니다 ;-) 업데이트 작업을 위해 – francadaval

+0

@francdaval - 감사합니다 - 예 결국 그 방법을 사용했습니다 –

답변

0

옵션을 순서, 적절한 문자열을 퍼머

'$slice':[ordinal,1] 

은 반환 동작을 정의하므로 쿼리 기준에 포함될 수 없습니다. 하지만 find_and_modify 함수는 정의에 따라 하나의 검색 레코드 만 처리합니다. 귀하의 경우에는 각 주석 레코드에 ID를 할당하고 'commentId'를 사용하는 것이 더 좋습니다. 즉, 쿼리에서 하나의 기준으로 ordinal을 사용합니다.

참조 용으로 http://docs.mongodb.org/manual/reference/projection/slice/http://docs.mongodb.org/manual/reference/command/findAndModify/을 참조하십시오.