복붙노트

[MONGODB] MongoDB를에 $을 모두 사용하여 배열 값을 일치시키기위한 여러 $의 elemMatch 식?

MONGODB

MongoDB를에 $을 모두 사용하여 배열 값을 일치시키기위한 여러 $의 elemMatch 식?

질문에 대한 대답에서 나는 $ elemMatch를 사용하여 배열 값을 검색하기위한 흥미로운 솔루션을 발견했다.

우리는 우리의 컬렉션에서 다음과 같은 서류가있는 경우 :

{
    foo : [ { bar : "xy", baz : 1 },
            { bar : "a", baz : 10 } ]
},
{
    foo : [ { bar : "xy", baz : 5 },
            { bar : "b", baz : 50 } ]
}

다음 쿼리는 첫 번째 문서 일치합니다 :

db.test.find({
    foo : { "$all" : [ { "$elemMatch" : { bar : "xy", baz : 1} }, { "$elemMatch" : { bar : "a", baz : 10 } } ] }
});

나는 여러 가지 다른 예제를 시도하고 정말 작동합니다. 그러나 $ 모든 연산자에 대한 공식 문서는이 두 쿼리를 조합에 대해 아무 말도하지 않습니다.

이것은 의도 된 행동이나 버그인가? 또는 문서이 사용 사례를 포함하지 않는이 단지 문제는?

해결법

  1. ==============================

    1.이것은 의도 된 동작입니다. 문서는이 사용 사례를 포함하지 않으며, 우리는 더 나은 그것을 만드는 데 노력하고 있습니다. 그 어려운, 그러나, 가능한 모든 쿼리 조합을 문서화합니다.

    이것은 의도 된 동작입니다. 문서는이 사용 사례를 포함하지 않으며, 우리는 더 나은 그것을 만드는 데 노력하고 있습니다. 그 어려운, 그러나, 가능한 모든 쿼리 조합을 문서화합니다.

  2. from https://stackoverflow.com/questions/9824341/multiple-elemmatch-expressions-for-matching-array-values-using-all-in-mongodb by cc-by-sa and MIT license