설명
- Bulk.find.arrayFilters(<array of filter documents>)
- 배열 필드에서 업데이트 작업을 위해 어떤 배열 요소를 수정할지 결정합니다. - Bulk.find(<query>).arrayFilters([ <filter1>, ... ]).updateOne(<update>); - Bulk.find(<query>).arrayFilters([ <filter1>, ... ]).update(<update>); - 업데이트 문서 에서 - $[<identifier>]필터링된 위치 연산자 를 사용하여 식별자를 정의한 다음 배열 필터하다 문서에서 참조합니다. 식별자가 업데이트 문서 에 포함되어 있지 않은 경우 식별자에 대한 배열 필터하다 문서 를 가질 수 없습니다.- <identifier>는 소문자로 시작해야 하며 영숫자만 포함할 수 있습니다.- 업데이트 문서에 동일한 식별자를 여러 번 포함할 수 있지만, 업데이트 문서의 각 고유 식별자( - $[identifier])에 대해 해당하는 배열 필터 문서를 정확히 하나씩 지정해야 합니다. 즉, 동일한 식별자에 대해 여러 개의 배열 필터 문서를 지정할 수 없습니다. 예를 들어, 업데이트 문에 식별자- x가 포함된 경우(여러 번),- x에 대한 별도의 필터 문서 2개가 포함된- arrayFilters에 대해 다음을 지정할 수 없습니다.- // INVALID - [ - { "x.a": { $gt: 85 } }, - { "x.b": { $gt: 80 } } - ] - 그러나 다음 예시와 같이 단일 필터 문서에서 동일한 식별자에 복합 조건을 지정할 수 있습니다. - // Example 1 - [ - { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } - ] - // Example 2 - [ - { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } - ] - // Example 3 - [ - { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } - ] - Bulk.find()메서드에 추가하여- updateOne()및- update()작업에 대한 배열 필터를 지정합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스 
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
예시
var bulk = db.coll.initializeUnorderedBulkOp(); bulk.find({}).arrayFilters( [ { "elem.grade": { $gt: 85 } } ] ).updateOne( { $set: { "grades.$[elem].mean" : 70 } } ); bulk.execute();