Java 类com.mongodb.client.model.CreateCollectionOptions 实例源码

项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
@Test
public void testNoRecords() throws Exception {
    assertEquals(0, cappedTestCollection.count());
    MockEndpoint mock = getMockEndpoint("mock:test");
    mock.expectedMessageCount(0);
    //BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()
    // create a capped collection with max = 1000
    CreateCollectionOptions collectionOptions = new CreateCollectionOptions()
            .capped(true)
            .sizeInBytes(1000000000)
            .maxDocuments(1000);
    db.createCollection(cappedTestCollectionName,
            collectionOptions);
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    assertEquals(0, cappedTestCollection.count());

    addTestRoutes();
    context.startRoute("tailableCursorConsumer1");
    Thread.sleep(1000);
    mock.assertIsSatisfied();
    context.stopRoute("tailableCursorConsumer1");

}
项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
private void testThousandRecordsWithRouteId(String routeId) throws Exception {
    assertEquals(0, cappedTestCollection.count());
    MockEndpoint mock = getMockEndpoint("mock:test");
    mock.expectedMessageCount(1000);

    // create a capped collection with max = 1000
    //BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()
    db.createCollection(cappedTestCollectionName,
            new CreateCollectionOptions()
                    .capped(true)
                    .sizeInBytes(1000000000)
                    .maxDocuments(1000));
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    for (int i = 0; i < 1000; i++) {
        cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));
    }
    assertEquals(1000, cappedTestCollection.count());

    addTestRoutes();
    context.startRoute(routeId);
    Thread.sleep(1000);
    mock.assertIsSatisfied();
    context.stopRoute(routeId);
}
项目:mandrel    文件:MongoUtils.java   
public static void checkCapped(MongoDatabase database, String collectionName, int size, int maxDocuments, boolean delete) {
    if (Lists.newArrayList(database.listCollectionNames()).contains(collectionName)) {
        log.debug("'{}' collection already exists...", collectionName);

        // Check if already capped
        Document command = new Document("collStats", collectionName);
        boolean isCapped = database.runCommand(command, ReadPreference.primary()).getBoolean("capped").booleanValue();

        if (!isCapped) {
            if (delete) {
                database.getCollection(collectionName).drop();
                database.createCollection(collectionName, new CreateCollectionOptions().capped(true).maxDocuments(maxDocuments).sizeInBytes(size));
            } else {
                log.info("'{}' is not capped, converting it...", collectionName);
                command = new Document("convertToCapped", collectionName).append("size", size).append("max", maxDocuments);
                database.runCommand(command, ReadPreference.primary());
            }
        } else {
            log.debug("'{}' collection already capped!", collectionName);
        }

    } else {
        database.createCollection(collectionName, new CreateCollectionOptions().capped(true).maxDocuments(maxDocuments).sizeInBytes(size));
    }
}
项目:logging-log4j2    文件:MongoDbConnection.java   
private static MongoCollection<Document> getOrCreateMongoCollection(final MongoDatabase database,
        final String collectionName, final boolean isCapped, final Integer sizeInBytes) {
    try {
        LOGGER.debug("Gettting collection '{}'...", collectionName);
        // throws IllegalArgumentException if collectionName is invalid
        return database.getCollection(collectionName);
    } catch (final IllegalStateException e) {
        LOGGER.debug("Collection '{}' does not exist.", collectionName);
        final CreateCollectionOptions options = new CreateCollectionOptions()
        // @formatter:off
                .capped(isCapped)
                .sizeInBytes(sizeInBytes);
        // @formatter:on
        LOGGER.debug("Creating collection {} (capped = {}, sizeInBytes = {})", collectionName, isCapped,
                sizeInBytes);
        database.createCollection(collectionName, options);
        return database.getCollection(collectionName);
    }

}
项目:morphia    文件:DatastoreImpl.java   
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();
            }
        }
    }
}
项目:reactive-hamster    文件:EventQueue.java   
public EventQueue(MongoDatabase db, HamsterEngine engine) {
    this.db = db;
    this.engine = engine;

    boolean exists = false;
    for (String name : db.listCollectionNames()) {
        if (name.equals(COLLECTION_NAME)) {
            exists = true;
            break;
        }
    }
    if (!exists) {
        CreateCollectionOptions options = new CreateCollectionOptions();
        options.capped(true);
        options.sizeInBytes(QUEUE_SIZE);
        options.maxDocuments(300);
        db.createCollection(COLLECTION_NAME, options);
    }
    queueCollection = db.getCollection(COLLECTION_NAME);
    pid = UUID.randomUUID().toString();

    Thread queuePoller = new Thread(new Runnable() {

        @Override
        public void run() {
            tailQueue();
        }
    }, "event queue processor");
    engine.addThread(queuePoller);
    queuePoller.start();
}
项目:mongo-java-driver-rx    文件:MongoDatabaseImpl.java   
@Override
public Observable<Success> createCollection(final String collectionName, final CreateCollectionOptions options) {
    return RxObservables.create(Observables.observe(new Block<SingleResultCallback<Success>>() {
        @Override
        public void apply(final SingleResultCallback<Success> callback) {
            wrapped.createCollection(collectionName, options, voidToSuccessCallback(callback));
        }
    }), observableAdapter);
}
项目:mongo-java-driver-reactivestreams    文件:MongoDatabaseImpl.java   
@Override
public Publisher<Success> createCollection(final String collectionName, final CreateCollectionOptions options) {
    return new ObservableToPublisher<Success>(observe(new Block<SingleResultCallback<Success>>() {
        @Override
        public void apply(final SingleResultCallback<Success> callback) {
            wrapped.createCollection(collectionName, options, voidToSuccessCallback(callback));
        }
    }));
}
项目:mongo-java-driver-reactivestreams    文件:MongoDatabaseImpl.java   
@Override
public Publisher<Success> createCollection(final ClientSession clientSession, final String collectionName,
                                           final CreateCollectionOptions options) {
    return new ObservableToPublisher<Success>(observe(new Block<SingleResultCallback<Success>>() {
        @Override
        public void apply(final SingleResultCallback<Success> callback) {
            wrapped.createCollection(clientSession, collectionName, options, voidToSuccessCallback(callback));
        }
    }));
}
项目:morphia    文件:AggregationTest.java   
@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());
}
项目:morphia    文件:TestMapreduce.java   
@Test
public void testBypassDocumentValidation() {
    checkMinServerVersion(3.4);
    getDs().save(asList(new Book("The Banquet", "Dante", 2),
                        new Book("Divine Comedy", "Dante", 1),
                        new Book("Eclogues", "Dante", 2),
                        new Book("The Odyssey", "Homer", 10),
                        new Book("Iliad", "Homer", 10)));

    Document validator = Document.parse("{ count : { $gt : '10' } }");
    ValidationOptions validationOptions = new ValidationOptions()
        .validator(validator)
        .validationLevel(ValidationLevel.STRICT)
        .validationAction(ValidationAction.ERROR);
    MongoDatabase database = getMongoClient().getDatabase(TEST_DB_NAME);
    database.getCollection("counts").drop();
    database.createCollection("counts", new CreateCollectionOptions().validationOptions(validationOptions));


    final String map = "function () { emit(this.author, 1); return; }";
    final String reduce = "function (key, values) { return values.length }";

    MapReduceOptions<CountResult> options = new MapReduceOptions<CountResult>()
        .query(getDs().find(Book.class))
        .resultType(CountResult.class)
        .outputType(OutputType.REPLACE)
        .map(map)
        .reduce(reduce);
    try {
        getDs().mapReduce(options);
        fail("Document validation should have complained.");
    } catch (MongoCommandException e) {
        // expected
    }

    getDs().mapReduce(options.bypassDocumentValidation(true));
    Assert.assertEquals(2, count(getDs().find(CountResult.class).iterator()));
}
项目:morphia    文件:TestDocumentValidation.java   
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;
}
项目:ibm-performance-monitor    文件:ProfiledMongoDatabase.java   
@Override
public void createCollection(String collectionName, CreateCollectionOptions createCollectionOptions)
{
    database.createCollection(collectionName, createCollectionOptions);
}
项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
@Test
public void testMultipleBursts() throws Exception {
    assertEquals(0, cappedTestCollection.count());
    MockEndpoint mock = getMockEndpoint("mock:test");
    mock.expectedMessageCount(5000);
    //BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()
    // create a capped collection with max = 1000
    CreateCollectionOptions createCollectionOptions = new CreateCollectionOptions()
            .capped(true)
            .sizeInBytes(1000000000)
            .maxDocuments(1000);
    db.createCollection(cappedTestCollectionName,
            createCollectionOptions);
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    addTestRoutes();
    context.startRoute("tailableCursorConsumer1");

    // pump 5 bursts of 1000 records each with 500ms pause between burst and burst
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < 5000; i++) {
                if (i % 1000 == 0) {
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        return;
                    }
                }
                cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));
            }

        }
    });

    // start the data pumping
    t.start();
    // before we assert, wait for the data pumping to end
    t.join();

    mock.assertIsSatisfied();
    context.stopRoute("tailableCursorConsumer1");

}
项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
@Test
public void testHundredThousandRecords() throws Exception {
    assertEquals(0, cappedTestCollection.count());
    final MockEndpoint mock = getMockEndpoint("mock:test");
    mock.expectedMessageCount(1000);

    // create a capped collection with max = 1000
    //BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get())
    db.createCollection(cappedTestCollectionName,
            new CreateCollectionOptions()
                    .capped(true)
                    .sizeInBytes(1000000000)
                    .maxDocuments(1000));
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    addTestRoutes();
    context.startRoute("tailableCursorConsumer1");

    // continuous pump of 100000 records, asserting incrementally to reduce overhead on the mock endpoint
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 1; i <= 100000; i++) {
                cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));

                // incrementally assert, as the mock endpoint stores all messages and otherwise the test would be sluggish
                if (i % 1000 == 0) {
                    try {
                        MongoDbTailableCursorConsumerTest.this.assertAndResetMockEndpoint(mock);
                    } catch (Exception e) {
                        return;
                    }
                }       
            }
        }
    });

    // start the data pumping
    t.start();
    // before we stop the route, wait for the data pumping to end
    t.join();

    context.stopRoute("tailableCursorConsumer1");

}
项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
@Test
public void testPersistentTailTrack() throws Exception {
    assertEquals(0, cappedTestCollection.count());
    final MockEndpoint mock = getMockEndpoint("mock:test");

    // drop the tracking collection
    db.getCollection(MongoDbTailTrackingConfig.DEFAULT_COLLECTION).drop();
    // create a capped collection with max = 1000
    // BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()
    db.createCollection(cappedTestCollectionName,
            new CreateCollectionOptions()
                    .capped(true)
                    .sizeInBytes(1000000000)
                    .maxDocuments(1000));
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    cappedTestCollection.createIndex(new BasicDBObject("increasing", 1));

    addTestRoutes();
    context.startRoute("tailableCursorConsumer2");

    mock.expectedMessageCount(300);
    // pump 300 records
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 1; i <= 300; i++) {
                cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));
            }
        }
    });

    // start the data pumping
    t.start();
    // before we continue wait for the data pump to end
    t.join();
    mock.assertIsSatisfied();
    mock.reset();
    context.stopRoute("tailableCursorConsumer2");
    while (context.getRouteStatus("tailableCursorConsumer2") != ServiceStatus.Stopped) { }
    context.startRoute("tailableCursorConsumer2");

    // expect 300 messages and not 600
    mock.expectedMessageCount(300);
    // pump 300 records
    t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 301; i <= 600; i++) {
                cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));
            }
        }
    });
    // start the data pumping
    t.start();
    // before we continue wait for the data pump to end
    t.join();
    mock.assertIsSatisfied();

    // check that the first message received in this second batch corresponds to increasing=301
    Object firstBody = mock.getExchanges().get(0).getIn().getBody();
    assertTrue(firstBody instanceof DBObject);
    assertEquals(301, ((DBObject) firstBody).get("increasing"));

    // check that the lastVal is persisted at the right time: check before and after stopping the route
    assertEquals(300, db.getCollection(MongoDbTailTrackingConfig.DEFAULT_COLLECTION).find(new BasicDBObject("persistentId", "darwin")).first().get("lastTrackingValue"));
    // stop the route and verify the last value has been updated
    context.stopRoute("tailableCursorConsumer2");
    while (context.getRouteStatus("tailableCursorConsumer2") != ServiceStatus.Stopped) { }
    assertEquals(600, db.getCollection(MongoDbTailTrackingConfig.DEFAULT_COLLECTION).find(new BasicDBObject("persistentId", "darwin")).first().get("lastTrackingValue"));

}
项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
@Test
public void testPersistentTailTrackIncreasingDateField() throws Exception {
    assertEquals(0, cappedTestCollection.count());
    final MockEndpoint mock = getMockEndpoint("mock:test");
    final Calendar startTimestamp = Calendar.getInstance();

    // get default tracking collection
    MongoCollection<BasicDBObject> trackingCol = db.getCollection(MongoDbTailTrackingConfig.DEFAULT_COLLECTION, BasicDBObject.class);
    trackingCol.drop();
    trackingCol = db.getCollection(MongoDbTailTrackingConfig.DEFAULT_COLLECTION, BasicDBObject.class);

    // create a capped collection with max = 1000
    //BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()
    db.createCollection(cappedTestCollectionName,
            new CreateCollectionOptions()
                    .capped(true)
                    .sizeInBytes(1000000000)
                    .maxDocuments(1000));
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    addTestRoutes();
    context.startRoute("tailableCursorConsumer2");

    mock.expectedMessageCount(300);
    // pump 300 records
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 1; i <= 300; i++) {
                Calendar c = (Calendar) (startTimestamp.clone());
                c.add(Calendar.MINUTE, i);
                cappedTestCollection.insertOne(new BasicDBObject("increasing", c.getTime()).append("string", "value" + i));
            }
        }
    });

    // start the data pumping
    t.start();
    // before we continue wait for the data pump to end
    t.join();
    mock.assertIsSatisfied();
    mock.reset();
    // ensure that the persisted lastVal is startTimestamp + 300min
    Calendar cal300 = (Calendar) startTimestamp.clone();
    cal300.add(Calendar.MINUTE, 300);
    context.stopRoute("tailableCursorConsumer2");
    assertEquals(cal300.getTime(), trackingCol.find(new BasicDBObject("persistentId", "darwin")).first().get(MongoDbTailTrackingConfig.DEFAULT_FIELD));
    context.startRoute("tailableCursorConsumer2");

    // expect 300 messages and not 600
    mock.expectedMessageCount(300);
    // pump 300 records
    t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 301; i <= 600; i++) {
                Calendar c = (Calendar) (startTimestamp.clone());
                c.add(Calendar.MINUTE, i);
                cappedTestCollection.insertOne(new BasicDBObject("increasing", c.getTime()).append("string", "value" + i));
            }
        }
    });
    // start the data pumping
    t.start();
    // before we continue wait for the data pump to end
    t.join();
    mock.assertIsSatisfied();
    Object firstBody = mock.getExchanges().get(0).getIn().getBody();
    assertTrue(firstBody instanceof DBObject);
    Calendar cal301 = (Calendar) startTimestamp.clone();
    cal301.add(Calendar.MINUTE, 301);
    assertEquals(cal301.getTime(), ((DBObject) firstBody).get("increasing"));
    // check that the persisted lastVal after stopping the route is startTimestamp + 600min
    context.stopRoute("tailableCursorConsumer2");
    Calendar cal600 = (Calendar) startTimestamp.clone();
    cal600.add(Calendar.MINUTE, 600);
    assertEquals(cal600.getTime(), trackingCol.find(new BasicDBObject("persistentId", "darwin")).first().get(MongoDbTailTrackingConfig.DEFAULT_FIELD));
}
项目:Camel    文件:MongoDbTailableCursorConsumerTest.java   
@Test
public void testCustomTailTrackLocation() throws Exception {
    assertEquals(0, cappedTestCollection.count());
    final MockEndpoint mock = getMockEndpoint("mock:test");

    // get the custom tracking collection and drop it (tailTrackDb=einstein&tailTrackCollection=curie&tailTrackField=newton)
    MongoCollection<BasicDBObject> trackingCol = mongo.getDatabase("einstein").getCollection("curie", BasicDBObject.class);
    trackingCol.drop();
    trackingCol = mongo.getDatabase("einstein").getCollection("curie", BasicDBObject.class);

    // create a capped collection with max = 1000
    //BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()
    db.createCollection(cappedTestCollectionName,
            new CreateCollectionOptions()
                    .capped(true)
                    .sizeInBytes(1000000000)
                    .maxDocuments(1000));
    cappedTestCollection = db.getCollection(cappedTestCollectionName, BasicDBObject.class);
    addTestRoutes();
    context.startRoute("tailableCursorConsumer3");

    mock.expectedMessageCount(300);
    // pump 300 records
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 1; i <= 300; i++) {
                cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));
            }
        }
    });

    // start the data pumping
    t.start();
    // before we continue wait for the data pump to end
    t.join();
    mock.assertIsSatisfied();
    mock.reset();

    // stop the route to ensure that our lastVal is persisted, and check it
    context.stopRoute("tailableCursorConsumer3");
    // ensure that the persisted lastVal is 300, newton is the name of the trackingField we are using
    assertEquals(300, trackingCol.find(new BasicDBObject("persistentId", "darwin")).first().get("newton"));
    context.startRoute("tailableCursorConsumer3");

    // expect 300 messages and not 600
    mock.expectedMessageCount(300);
    // pump 300 records
    t = new Thread(new Runnable() {
        @Override
        public void run() {
            for (int i = 301; i <= 600; i++) {
                cappedTestCollection.insertOne(new BasicDBObject("increasing", i).append("string", "value" + i));
            }
        }
    });
    // start the data pumping
    t.start();
    // before we continue wait for the data pump to end
    t.join();
    mock.assertIsSatisfied();
    // check that the first received body contains increasing=301 and not increasing=1, i.e. it's not starting from the top
    Object firstBody = mock.getExchanges().get(0).getIn().getBody();
    assertTrue(firstBody instanceof DBObject);
    assertEquals(301, ((DBObject) firstBody).get("increasing"));
    // check that the persisted lastVal after stopping the route is 600, newton is the name of the trackingField we are using
    context.stopRoute("tailableCursorConsumer3");
    assertEquals(600, trackingCol.find(new BasicDBObject("persistentId", "darwin")).first().get("newton"));

}
项目:mongo-java-driver-rx    文件:MongoDatabaseImpl.java   
@Override
public Observable<Success> createCollection(final String collectionName) {
    return createCollection(collectionName, new CreateCollectionOptions());
}
项目:respiro    文件:MongoDBExchangesPlugin.java   
@Override
public void createCollection(
  String collectionName, CreateCollectionOptions createCollectionOptions) {

}
项目:mongo-java-driver-reactivestreams    文件:MongoDatabaseImpl.java   
@Override
public Publisher<Success> createCollection(final String collectionName) {
    return createCollection(collectionName, new CreateCollectionOptions());
}
项目:mongo-java-driver-reactivestreams    文件:MongoDatabaseImpl.java   
@Override
public Publisher<Success> createCollection(final ClientSession clientSession, final String collectionName) {
    return createCollection(clientSession, collectionName, new CreateCollectionOptions());
}
项目:sweng15    文件:DatabaseAdapter.java   
/**
 * Create all collections in the database, then setup necessary environment parameters.
 */
public void setupEmptyDatabase() {
    this.database.createCollection(MOVIES_COLLECTION, new CreateCollectionOptions().capped(false));
}
项目:mongo-java-driver-rx    文件:MongoDatabase.java   
/**
 * Create a new collection with the selected options
 *
 * @param collectionName the name for the new collection to create
 * @param options        various options for creating the collection
 * @return an observable identifying when the collection has been created
 * @mongodb.driver.manual reference/commands/create Create Command
 */
Observable<Success> createCollection(String collectionName, CreateCollectionOptions options);
项目:mongo-java-driver-reactivestreams    文件:MongoDatabase.java   
/**
 * Create a new collection with the selected options
 *
 * @param collectionName the name for the new collection to create
 * @param options        various options for creating the collection
 * @return a publisher identifying when the collection has been created
 * @mongodb.driver.manual reference/commands/create Create Command
 */
Publisher<Success> createCollection(String collectionName, CreateCollectionOptions options);
项目:mongo-java-driver-reactivestreams    文件:MongoDatabase.java   
/**
 * Create a new collection with the selected options
 *
 * @param clientSession the client session with which to associate this operation
 * @param collectionName the name for the new collection to create
 * @param options        various options for creating the collection
 * @return a publisher identifying when the collection has been created
 * @mongodb.driver.manual reference/commands/create Create Command
 * @mongodb.server.release 3.6
 * @since 1.7
 */
Publisher<Success> createCollection(ClientSession clientSession, String collectionName, CreateCollectionOptions options);