2013-08-08 12 views
-1

집계에서 $를 사용할 수있는 방법이 있습니까?

내 수집 물은 { "id": 5, score : 70}이고, {$ match : {$ where : "this.id> 5 & & this.score> 70"}} T는 작품으로, 나는 어디로 내 API는 일반적인 인터페이스 "SQL"과 같은 일반적인 텍스트에서 사용자로부터 쿼리를 받고 몽고 인터페이스입니다, 그래서 내가 사용할 수있는 모든 방법으로 나는 어디에서 $ 문서를 사용할 수 없습니다 그것 $ 일치와 함께, 그것은 정상적인 발견과 함께 잘 작동하지만 집계 쿼리와 함께 작동하게 만드는 방법?

+0

$ 여기서 JIRA는 JIRA에 의해 제거되지 않았고, aggregation 프레임 워크에서 단순히 성능을 죽입니다. – Sammaye

+0

읽기 쉽도록 적절한 규칙을 사용하여 질문을보다 쉽게 ​​나타낼 수 있습니다. –

답변

1

아니,하지만 당신은 그것을 위해 $where를 사용할 필요가 없습니다 :

{'$match': {'id': {'$gt': 5}, 'score': {'$gt': 70}}} 

그래서 당신이 사용자가 위와 다음 JSON.parse 문자열과 같은 JSON 문자열로 자신의 쿼리를 입력이 필요 것 서버를 사용하여 $match과 함께 사용할 수있는 객체로 바꿉니다.

부수적으로, $where의 성능은 끔찍한 것이므로 $where 쿼리에 API를 사용하는 것은 매우 나쁜 생각입니다.

+0

그럴 수 있지만 OR 및 AND의 경우 중첩 된 AND 및 OR 일 수 있으므로 오류 발생 가능성이 높아집니다. –

+0

@PhalguniMukherjee 그러나 위험한 스크립트 주사가 발생할 확률이 줄어들며 이는 더욱 중요합니다. – Philipp

관련 문제