복붙노트

[MONGODB] MongoDB를 3.6.0-RC3 배열 필터가 작동하지?

MONGODB

MongoDB를 3.6.0-RC3 배열 필터가 작동하지?

나는 정확히 문서의 예처럼, MongoDB를 3.6.0-RC3에 배열 필터를 사용하려고하지만, 어떤 행이 영향을 받고없고 오류 아니에요.

실시 예는 단순화된다. 나는이 위치 연산자로 $ 수행 할 수 있습니다 알고 있지만 나는이 개 수준의 중첩 배열이 기능을 사용하기 위해 기획하고있다.

db.getCollection('books').update({},
    {
        $set: { "authors.$[element].firstName": "Joe" }
    },
    {
        arrayFilters: [ { element: { "_id": ObjectId("some_id") } } ],
        multi: true
    })

사람은 아직이 시도?

해결법

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

    1.당신은 robomongo이를 입력하고 있습니까? 그것은처럼 보인다! 그것이 작동하지 않도록합니다. 나는이 때문에 쉘 도우미 메서드는 현재 구현 방식 (robomongo 쉘 기반의 빌드입니다) 그것을 기반으로 "나이 쉘"또는 아무것도 일을하지 않는 말을 어디에서 MongoDB를 가진 중첩 된 배열을 업데이트 내 메모를 읽기 :

    당신은 robomongo이를 입력하고 있습니까? 그것은처럼 보인다! 그것이 작동하지 않도록합니다. 나는이 때문에 쉘 도우미 메서드는 현재 구현 방식 (robomongo 쉘 기반의 빌드입니다) 그것을 기반으로 "나이 쉘"또는 아무것도 일을하지 않는 말을 어디에서 MongoDB를 가진 중첩 된 배열을 업데이트 내 메모를 읽기 :

    그래서 당신은 그 버전으로 번들 몽고 쉘을 사용하거나 표준 드라이버를 통해 코드를 실행하거나, 릴리스 후보 "로 플레이"를 원하는 경우.

  2. ==============================

    2.이 버그는 단지 $ 사용 arrayFilter 괜찮은가이 mongo4.0.4 스튜디오 - 3t에서 그것을 시도, 2018년 6월 1일에 스튜디오 3t의 버전을 업그레이드

    이 버그는 단지 $ 사용 arrayFilter 괜찮은가이 mongo4.0.4 스튜디오 - 3t에서 그것을 시도, 2018년 6월 1일에 스튜디오 3t의 버전을 업그레이드

  3. ==============================

    3.

    db.getCollection('books').update({},
        {
            $set: { "authors.$[element].firstName": "Joe" }
        },
        {
            arrayFilters: [ { "element._id": ObjectId("some_id") } ],
            multi: true
        })
    
  4. from https://stackoverflow.com/questions/47225822/mongodb-3-6-0-rc3-array-filters-not-working by cc-by-sa and MIT license