두 개의 컬렉션 page
과 likes
이 있습니다. 두 컬렉션 모두 필드가 pageId
입니다. likes
에도 필드 userName
이 있습니다.MongoDB에서 NOT EXISTS 쿼리를 실행하는 방법은 무엇입니까?
likes
모음에 pageId
/userName
쌍이 있으면 해당 페이지가 특정 사용자와 유사하다는 의미입니다.
특정 사용자가 좋아하지 않은 페이지를 반환하는 쿼리는 어떻게 실행합니까?
SELECT *
FROM page
WHERE NOT EXISTS (SELECT 'a' FROM likes WHERE (likes.pageId = page.pageId) AND (likes.userName = 'userName'))
LIMIT 1
는 내가 그 의미가 같은 이름을 가진 SQL 작업 다르다는 것을 읽은 $exists
운영자하지만 here를 사용하는 방법에 대한 생각 나는 사용해야합니다 :
SQL에서이 같을 것이다 $in
연산자.
내가 할 수
- 특정 사용자가 좋아하는 모든 페이지를 찾아 및 목록에 저장하고
- 다음 포함되지 않은 firt 페이지를 반환해야하는
page
에 쿼리를 실행 목록에.
나는 매우 비효율적 인 것처럼 보이기 때문에이 방법을 구현하는 것을 주저하고 있습니다. (2 단계에서는 하나의 페이지 만 필요하지만 사용자의 좋아하는 모든 것을 탐색해야합니다.)
데이터 예제를 포함 할 수 있습니까? (하나의 레코드로 충분할 것입니다.) 존재하지 않는 것을 확인하기 위해 $ 존재를 사용하는 것은 꽤 쉽지만, 여러분의 데이터가 어떻게 설정되는지는 모두 이해할 수 있습니다. –