@Override public void createCollection(final String collectionName) { createCollection(collectionName, new CreateCollectionOptions()); }
@Override public void createCollection(final ClientSession clientSession, final String collectionName) { createCollection(clientSession, collectionName, new CreateCollectionOptions()); }
public Mono<MongoCollection<Document>> createCollection(String collectionName) { return doCreateCollection(collectionName, new CreateCollectionOptions()); }
protected CreateCollectionOptions convertToCreateCollectionOptions(@Nullable CollectionOptions collectionOptions, Class<?> entityType) { CreateCollectionOptions result = new CreateCollectionOptions(); if (collectionOptions == null) { return result; } collectionOptions.getCapped().ifPresent(result::capped); collectionOptions.getSize().ifPresent(result::sizeInBytes); collectionOptions.getMaxDocuments().ifPresent(result::maxDocuments); collectionOptions.getCollation().map(Collation::toMongoCollation).ifPresent(result::collation); collectionOptions.getValidationOptions().ifPresent(it -> { ValidationOptions validationOptions = new ValidationOptions(); it.getValidationAction().ifPresent(validationOptions::validationAction); it.getValidationLevel().ifPresent(validationOptions::validationLevel); it.getValidator().ifPresent(val -> validationOptions.validator(getMappedValidator(val, entityType))); result.validationOptions(validationOptions); }); return result; }
private MongoDatabase addValidation(final Document validator, final String collectionName) { ValidationOptions options = new ValidationOptions() .validator(validator) .validationLevel(ValidationLevel.MODERATE) .validationAction(ValidationAction.ERROR); MongoDatabase database = getMongoClient().getDatabase(TEST_DB_NAME); database.getCollection(collectionName).drop(); database.createCollection(collectionName, new CreateCollectionOptions().validationOptions(options)); return database; }
public MongoCollection<Document> doInDB(MongoDatabase db) throws MongoException, DataAccessException { CreateCollectionOptions co = new CreateCollectionOptions();
public Mono<MongoCollection<Document>> createCollection(String collectionName) { return doCreateCollection(collectionName, new CreateCollectionOptions()); }
void process(final MappedClass mc, final Validation validation) { if (validation != null) { String collectionName = mc.getCollectionName(); CommandResult result = getDB() .command(new BasicDBObject("collMod", collectionName) .append("validator", parse(validation.value())) .append("validationLevel", validation.level().getValue()) .append("validationAction", validation.action().getValue()) ); if (!result.ok()) { if (result.getInt("code") == 26) { ValidationOptions options = new ValidationOptions() .validator(parse(validation.value())) .validationLevel(validation.level()) .validationAction(validation.action()); getDatabase().createCollection(collectionName, new CreateCollectionOptions().validationOptions(options)); } else { result.throwOnError(); } } } }
@Test public void testBypassDocumentValidation() { checkMinServerVersion(3.2); getDs().save(asList(new User("john doe", new Date()), new User("John Doe", new Date()))); MongoDatabase database = getMongoClient().getDatabase(TEST_DB_NAME); database.getCollection("out_users").drop(); database.createCollection("out_users", new CreateCollectionOptions() .validationOptions(new ValidationOptions() .validator(Document.parse("{ \"age\" : { \"gte\" : 13 } }")))); try { getDs() .createAggregation(User.class) .match(getDs().find(User.class).field("name").equal("john doe")) .out("out_users", User.class); fail("Document validation should have complained."); } catch (MongoCommandException e) { // expected } getDs() .createAggregation(User.class) .match(getDs().find(User.class).field("name").equal("john doe")) .out("out_users", User.class, builder() .bypassDocumentValidation(true) .build()); Assert.assertEquals(1, getAds().find("out_users", User.class).count()); }
MongoDatabase database = getMongoClient().getDatabase(TEST_DB_NAME); database.getCollection("counts").drop(); database.createCollection("counts", new CreateCollectionOptions().validationOptions(validationOptions));
protected CreateCollectionOptions convertToCreateCollectionOptions(@Nullable CollectionOptions collectionOptions, Class<?> entityType) { CreateCollectionOptions result = new CreateCollectionOptions(); if (collectionOptions == null) { return result; } collectionOptions.getCapped().ifPresent(result::capped); collectionOptions.getSize().ifPresent(result::sizeInBytes); collectionOptions.getMaxDocuments().ifPresent(result::maxDocuments); collectionOptions.getCollation().map(Collation::toMongoCollation).ifPresent(result::collation); collectionOptions.getValidationOptions().ifPresent(it -> { ValidationOptions validationOptions = new ValidationOptions(); it.getValidationAction().ifPresent(validationOptions::validationAction); it.getValidationLevel().ifPresent(validationOptions::validationLevel); it.getValidator().ifPresent(val -> validationOptions.validator(getMappedValidator(val, entityType))); result.validationOptions(validationOptions); }); return result; }
public MongoCollection<Document> doInDB(MongoDatabase db) throws MongoException, DataAccessException { CreateCollectionOptions co = new CreateCollectionOptions();
@Override public void createCollection(final ClientSession clientSession, final String collectionName) { createCollection(clientSession, collectionName, new CreateCollectionOptions()); }
@Override public void createCollection(final String collectionName) { createCollection(collectionName, new CreateCollectionOptions()); }
@Override public Publisher<Success> createCollection(final ClientSession clientSession, final String collectionName) { return createCollection(clientSession, collectionName, new CreateCollectionOptions()); }
@Override public Publisher<Success> createCollection(final String collectionName) { return createCollection(collectionName, new CreateCollectionOptions()); }
@Override public void createCollection(final String collectionName) { createCollection(collectionName, new CreateCollectionOptions()); }
@Test public void testCreateCollectionAlreadyExists() throws Exception { db.createCollection("some-collection", new CreateCollectionOptions()); assertThatExceptionOfType(MongoCommandException.class) .isThrownBy(() -> db.createCollection("some-collection", new CreateCollectionOptions())) .withMessageContaining("Command failed with error 48 (NamespaceExists): 'a collection 'testdb.some-collection' already exists'"); }
private MongoCollection<Document> getCollection(String collectionName) { // first check if collection exists, if not then create a new collection with cappedSize if (!isCollectionExists(collectionName)) { CreateCollectionOptions option = new CreateCollectionOptions(); option.capped(true); option.maxDocuments(cappedMaxDocuments); option.sizeInBytes(cappedMaxSize); db.createCollection(collectionName, option); } return db.getCollection(collectionName); }
@Test public void testCreateCollection() throws Exception { String newCollectionName = "some-collection"; assertThat(toArray(db.listCollectionNames())).doesNotContain(newCollectionName); db.createCollection(newCollectionName, new CreateCollectionOptions()); assertThat(toArray(db.listCollectionNames())).contains(newCollectionName); }