programing

Mongo에서 "NOT IN" 쿼리를 실행하려면 어떻게 해야 하나요?

cafebook 2023. 3. 4. 15:10
반응형

Mongo에서 "NOT IN" 쿼리를 실행하려면 어떻게 해야 하나요?

다음은 제 문서입니다.

{ 
    title:"Happy thanksgiving",
    body: "come over for dinner",
    blocked:[
       {user:333, name:'john'},
       {user:994, name:'jessica'},
       {user:11, name: 'matt'},
    ]
}

"차단됨"에 사용자 11이 없는 모든 문서를 찾기 위한 쿼리는 무엇입니까?

"not in"으로 $in 또는 $nin을 사용할 수 있습니다.

예...

> db.people.find({ crowd : { $nin: ["cool"] }});

여기에 더 많은 예를 제시하겠습니다.http://learnmongo.com/posts/being-part-of-the-in-crowd/

단일 값과 비교하기 때문에 이 예에서는 실제로 NOT IN 연산이 필요하지 않습니다.이는 Mongo가 배열 하위 문서의 모든 요소에 검색 기준을 적용하기 때문입니다.NOT EQUALES 연산자 $ne을 사용하여 원하는 값을 얻을 수 있습니다.이 연산자는 검색에서 찾을 수 없는 값을 취하기 때문입니다.

db.myCollection.find({'blocked.user': {$ne: 11}});

단, 동등하지 않은 것이 많으면 NOT IN 연산자 $nin을 사용합니다.검색에서 표시할 수 없는 값의 배열을 사용합니다.

db.myCollection.find({'blocked.user': {$nin: [11, 12, 13]}});

다음을 시도해 보십시오.

db.stack.find({"blocked.user":{$nin:[11]}})

이건 나한테 효과가 있었어.

http://docs.mongodb.org/manual/reference/operator/query/nin/ #op._S_nin 참조

db.inventory.find( { qty: { $nin: [ 5, 15 ] } } )

이 쿼리는 qty 필드 값이 5 또는 15가 아닌 인벤토리 컬렉션의 모든 문서를 선택합니다.선택한 문서에는 QTY 필드가 포함되지 않은 문서가 포함됩니다.

필드가 배열을 보유하고 있는 경우 $nin 연산자는 지정된 배열의 값과 동일한 요소가 없는 배열(예를 들어, 등)을 보유하고 있는 문서를 선택합니다.

언급URL : https://stackoverflow.com/questions/6391643/how-do-i-do-a-not-in-query-in-mongo

반응형