2012-11-08 21 views
9

Tôi có một bộ sưu tập hiện có mà tôi cần phải chuyển đổi thành một Capped Collection sử dụng phương pháp liệt kê:Set max trên Mongo mũ bộ sưu tập

> db.runCommand({"convertToCapped": "mycoll", size: 100000}); 

Tuy nhiên, lĩnh vực tối đa không được chấp nhận như một tham số

> db.mycol1.convertToCapped 
function (bytes) { 
    if (!bytes) { 
     throw "have to specify # of bytes"; 
    } 
    return this._dbCommand({convertToCapped: this._shortName, size: bytes}); 
} 

Bất kỳ ý tưởng làm thế nào để thiết lập này?

Trả lời

6

tối đa chỉ là tùy chọn trong phương pháp createCollection, không convertToCapped:

db.createCollection("mycoll", {capped:true, size:100000, max:100}); 

Có một cloneCollectionAsCapped, nhưng nó không giống như có một tùy chọn doc max có một trong hai: http://docs.mongodb.org/manual/reference/command/cloneCollectionAsCapped/

Bạn có thể cần tạo bộ sưu tập có giới hạn mới với thông số tối đa và dữ liệu chuyển và chỉ mục từ bộ sưu tập hiện có. Xem http://learnmongo.com/posts/easily-move-documents-between-collections-or-databases/

+0

Có vẻ như cần có cách để chỉnh sửa thuộc tính của bộ sưu tập mà không di chuyển tất cả dữ liệu xung quanh. Tôi đang nói về một bộ sưu tập có kích cỡ trung bình ~ 30 triệu tài liệu, vì vậy một phương pháp trực tiếp hơn sẽ được ưu tiên hơn. – trimbletodd

Các vấn đề liên quan