9

我有一个现有的集合,我需要使用列出的方法将其转换为Capped Collection :

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

但是,不接受 max 字段作为参数

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

知道如何设置吗?

4

1 回答 1

7

max 只是 createCollection 方法中的一个选项,而不是 convertToCapped:

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

有一个 cloneCollectionAsCapped,但它看起来也没有一个 max doc 选项:http ://docs.mongodb.org/manual/reference/command/cloneCollectionAsCapped/

您可能需要使用 max 参数创建一个新的上限集合,并从现有集合中传输数据和索引。请参阅http://learnmongo.com/posts/easily-move-documents-between-collections-or-databases/

于 2012-11-08T18:30:07.450 回答