2012-11-08 5 views
9

Ich habe eine bestehende Sammlung, die ich brauche in ein Capped Collection unter Verwendung des Verfahrens zur Umwandlung aufgeführt:Set max auf Mongo capped Sammlung

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

Allerdings ist der max Feld nicht als Parameter akzeptiert

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

Irgendeine Idee, wie man das einstellt?

Antwort

6

max nur eine Option in der createCollection Methode ist, nicht convertToCapped:

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

Es gibt eine cloneCollectionAsCapped, aber es sieht nicht so aus gibt es eine max doc Option gibt es entweder: http://docs.mongodb.org/manual/reference/command/cloneCollectionAsCapped/

können Sie Sie müssen eine neue Capped-Collection mit dem Parameter max erstellen und Daten und Indizes aus der bestehenden Collection übertragen. Siehe http://learnmongo.com/posts/easily-move-documents-between-collections-or-databases/

+0

Es scheint, als sollte es eine Möglichkeit geben, die Eigenschaften einer Sammlung zu bearbeiten, ohne alle Daten zu verschieben. Ich spreche von einer mittelgroßen Sammlung von ~ 30m Dokumenten, daher wäre eine direktere Methode vorzuziehen. – trimbletodd

Verwandte Themen