2012-06-27 4 views
2

Je souhaite créer une collection plafonnée à partir du code Java. J'ai trouvé la syntaxe pour la créer via JavaScript, mais je n'ai pas trouvé d'exemple pour Java.Création d'une collection plafonnée mongodb en Java

Mongo mongo = new Mongo("127.0.0.1"); 
DB db = mongo.getDB("mydbid"); 

DBCollection collection; 
if (db.collectionExists("mycollection")) { 
     collection = db.getCollection("mycollection"); 
    } else { 
     collection = /* ????? Create the collection ?????? */ 
    } 
} 

Répondre

11

utiliser l'opération DB.createCollection puis spécifier un dbobject qui a coiffé en tant que paramètre. Vous pouvez ensuite spécifier taille et max afin de contrôler la taille de l'octet et le nombre maximum de documents. Le site MongoDB a un tutorial sur les collections plafonnées qui explique toutes les options, mais il manque un exemple pour chaque pilote.

Mongo mongo = new Mongo("127.0.0.1"); 
DB db = mongo.getDB("mydbid"); 

DBCollection collection; 
if (db.collectionExists("mycollection")) { 
     collection = db.getCollection("mycollection"); 
    } else { 
     DBObject options = BasicDBObjectBuilder.start().add("capped", true).add("size", 2000000000l).get(); 
     collection = db.createCollection("mycollection", options); 
    } 
} 
+0

Merci pour la réponse, mais je me demande s'il n'y a pas d'autre approche que d'utiliser sinon d'autre pour ce problème? –

+0

Le if/else est seulement si vous pouvez faire une création dynamique si la collection n'existe pas. Si la collection plafonnée est créée avant son utilisation, vous n'avez besoin que de la partie ** else ** de l'exemple de code. –

Questions connexes