2017-11-24 10 views
-2

일부 시스템 아치를 기반으로합니다. 예를 들어 특정 이름 규칙에 따라 여러 컬렉션을 업데이트해야 할 수도 있습니다. {$ {거짓 "으로 isDeleted"} [m_aaaa_info], [m_aaab_info 이렇게Mongodb에서 동시에 여러 컬렉션을 업데이트 할 수있는 방법이 있습니까?

.etc 내가 갱신 (같은 같은 선택 & 업데이트 조건 [m _ * _ 정보]에 의해 명명 모든 컬렉션을 업데이트해야 할 수 있습니다 set : { "isDeleted": false}})

이렇게 도구/추천이이 작업을 수행 할 수 있습니까? 예 : db.getCollection ('m _ * _ 정보') 업데이트. ({ "으로 isDeleted"거짓}, {$ 세트 : { "으로 isDeleted"거짓}} = 허위 사실 = 화가, 멀티 업데이트)

+0

나는 기본적인 & 약간의 서투른 방법을 시도했다 ... 봄 mongodb 항아리 메서드를 사용하여 모든 컬렉션의 이름을 가져오고, 시스템 구성 컬렉션을 건너 뛰고 목록에 저장하고 목록을 반복하고 업데이트 cmds를 하드 코딩한다. 100 개가 넘는 대상 컬렉션을 위해 그렇게하는 것은 끔찍한 일입니다. –

답변

0
var c = db.getCollectionNames(); 
c.forEach(function(name) { 
      if (/m_[a-z]*_info/i.test(name)) { 
       db[name].update({ 
         "isDeleted": false 
        }, { 
         $set: { 
          "isDeleted": true 
         } 
        } 
       } 
      })