2012-10-10 2 views
1

Mongoid + Moped 드라이버를 사용하여 컬렉션 이름을 어떻게 바꿀 수 있습니까?Moped : mongodb 컬렉션 이름 바꾸기

http://docs.mongodb.org/manual/reference/command/renameCollection/의 Moped 구현이 있습니까?

+0

내가 의해 대신 컬렉션을 움직일 것입니다 물론 데이터를 복사하는 것이 컬렉션이 너무 큰 경우 (큰 범위의 샤드 키를 변경하는 것과 같음)에 더 좋은 아이디어가 아닙니다. – Sammaye

답변

0

컬렉션의 이름을 바꾸는 것은 심각한 변화이며 공유 된 환경에서는 작동하지 않습니다.

하지만 admin db와 db 명령을 사용하는 앱을 통해이 작업을 수행 할 수 있습니다. 그래서 나는 아마도 다음을 살펴볼 것입니다. the Moped Driver Docs

+0

실제로 도움이되지 않습니다. 링크 된 문서는 renameCollection과 같은 "원시"mongo 명령을 실행하는 방법을 제공하지 않습니다. – Obie

+0

테스트하지는 않았지만 세션을 만들 때 다음과 같이 말합니다. ".. 비슷한 방식으로 상호 작용할 수 있습니다. 몽고 콘솔로. " – Marc

0

컬렉션은 Moped::Collection#rename 메소드를 통해 이름을 바꿀 수 있습니다. 여기

는 "foo는"컬렉션에 "바"의 이름을 변경하는 예이다 :

Mongoid::default_session[:foo].rename("bar") 

후드 아래를, 명령과 같이 구성된다 :

session. 
    with(database: "admin", read: :primary). 
    command(renameCollection: "#{database.name}.#{name}", to: "#{database.name}.#{to_name}")