Example usage for com.mongodb.client MongoCollection listIndexes

List of usage examples for com.mongodb.client MongoCollection listIndexes

Introduction

In this page you can find the example usage for com.mongodb.client MongoCollection listIndexes.

Prototype

ListIndexesIterable<Document> listIndexes();

Source Link

Document

Get all the indexes in this collection.

Usage

From source file:io.djigger.collector.accessors.stackref.AbstractAccessor.java

License:Open Source License

private Document getIndex(MongoCollection<Document> collection, String indexName) {
    for (Document index : collection.listIndexes()) {
        Object o = index.get("key");
        if (o instanceof Document) {
            if (((Document) o).containsKey(indexName)) {
                return (Document) index;
            }/*from w  w w  .j  ava2s  .c  o m*/
        }
    }
    return null;
}

From source file:mongodb.QuickTourAdmin.java

License:Apache License

/**
 * Run this main method to see the output of this quick example.
 *
 * @param args//from w ww. ja va2  s  . co  m
 *            takes an optional single argument for the connection string
 */
public static void main(final String[] args) {
    MongoClient mongoClient;

    if (args.length == 0) {
        // connect to the specified database server
        mongoClient = new MongoClient("10.9.17.105", 27017);
    } else {
        mongoClient = new MongoClient(new MongoClientURI(args[0]));
    }

    // get handle to "test" database
    MongoDatabase database = mongoClient.getDatabase("test");

    database.drop();

    // get a handle to the "test" collection
    MongoCollection<Document> collection = database.getCollection("test");

    // drop all the data in it
    collection.drop();

    // getting a list of databases
    for (String name : mongoClient.listDatabaseNames()) {
        System.out.println(name);
    }

    // drop a database
    mongoClient.getDatabase("databaseToBeDropped").drop();

    // create a collection
    database.createCollection("cappedCollection",
            new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));

    for (String name : database.listCollectionNames()) {
        System.out.println(name);
    }

    // drop a collection:
    collection.drop();

    // create an ascending index on the "i" field
    // 1 ascending or -1 for descending
    collection.createIndex(new Document("i", 1));

    // list the indexes on the collection
    for (final Document index : collection.listIndexes()) {
        System.out.println(index.toJson());
    }

    // create a text index on the "content" field
    // text indexes to support text search of string content
    collection.createIndex(new Document("content", "text"));

    collection.insertOne(new Document("_id", 0).append("content", "textual content"));
    collection.insertOne(new Document("_id", 1).append("content", "additional content"));
    collection.insertOne(new Document("_id", 2).append("content", "irrelevant content"));

    // Find using the text index
    long matchCount = collection.count(text("textual content -irrelevant"));
    System.out.println("Text search matches: " + matchCount);

    // Find using the $language operator
    Bson textSearch = text("textual content -irrelevant", "english");
    matchCount = collection.count(textSearch);
    System.out.println("Text search matches (english): " + matchCount);

    // Find the highest scoring match
    Document projection = new Document("score", new Document("$meta", "textScore"));
    Document myDoc = collection.find(textSearch).projection(projection).first();
    System.out.println("Highest scoring document: " + myDoc.toJson());

    // Run a command
    Document buildInfo = database.runCommand(new Document("buildInfo", 1));
    System.out.println(buildInfo);

    // release resources
    database.drop();
    mongoClient.close();
}

From source file:mongofx.ui.dbtree.DBTreeController.java

License:Open Source License

private List<TreeItem<DbTreeValue>> buildIndexes(DbTreeValue value) {
    MongoCollection<Document> collection = value.getMongoDatabase().getMongoDb()
            .getCollection(value.getCollectionName());

    return StreamSupport.stream(collection.listIndexes().spliterator(), false).map(d -> {
        DbTreeValue val = new DbTreeValue(value.getMongoDatabase(), (String) d.get("name"),
                TreeValueType.INDEX);/*from  w w w . j  a v a2 s .  com*/
        val.setCollectionName(value.getDisplayValue());
        return new TreeItem<>(val, new FontAwesomeIconView(FontAwesomeIcon.ASTERISK));
    }).collect(Collectors.toList());
}

From source file:org.netbeans.modules.mongodb.ui.explorer.IndexNodesFactory.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
protected boolean createKeys(List<Index> list) {
    MongoCollection<BsonDocument> collection = lookup.lookup(MongoCollection.class);
    List<Index> indexes = new ArrayList<>();
    for (Document indexObj : collection.listIndexes()) {
        Index index = Index.fromJson(indexObj);
        indexes.add(index);//ww  w . ja v  a  2  s . c om
    }
    Collections.sort(indexes, new IndexComparator());
    list.addAll(indexes);
    return true;
}

From source file:rapture.table.mongodb.MongoIndexHandler.java

License:Open Source License

private void createIndex(IndexDefinition indexDefinition, boolean force) {
    // create index if not exists... use index name too from indexDefinition
    // object//w  w w.  jav  a 2  s  .c om
    if (indexDefinition == null) {
        return;
    }

    String indexName = IndexNameFactory.createIndexName(indexDefinition);
    MongoCollection<Document> collection = MongoDBFactory.getCollection(instanceName, tableName);

    int limit = Integer.parseInt(MultiValueConfigLoader.getConfig("MONGODB-" + instanceName + ".limit",
            MultiValueConfigLoader.getConfig("MONGODB-default.limit", "250")));

    boolean indexExists = false;
    ListIndexesIterable<Document> indexInfo = collection.listIndexes();
    for (Document dbObject : indexInfo) {
        Object name = dbObject.get("name");
        if (name != null && name.toString().equals(indexName)) {
            indexExists = true;
            break;
        }
    }
    if (force || collection.count() < limit) {
        createIt(indexDefinition, force, indexName, collection);
    } else {
        if (!indexExists) {
            log.warn(tableName + " collection has more than " + limit + " items. please index manually");
        }
    }
}

From source file:tour.NewQuickTour.java

License:Apache License

/**
 * Run this main method to see the output of this quick example.
 *
 * @param args takes an optional single argument for the connection string
 *//*from   w w  w .jav a 2s. c  o m*/
public static void main(final String[] args) {
    MongoClient mongoClient;

    if (args.length == 0) {
        // connect to the local database server
        mongoClient = new MongoClient();
    } else {
        mongoClient = new MongoClient(new MongoClientURI(args[0]));
    }

    // get handle to "mydb" database
    MongoDatabase database = mongoClient.getDatabase("mydb");

    database.drop();

    // get a list of the collections in this database and print them out
    List<String> collectionNames = database.listCollectionNames().into(new ArrayList<String>());
    for (final String s : collectionNames) {
        System.out.println(s);
    }

    // get a handle to the "test" collection
    MongoCollection<Document> collection = database.getCollection("test");

    // drop all the data in it
    collection.drop();

    // make a document and insert it
    Document doc = new Document("name", "MongoDB").append("type", "database").append("count", 1).append("info",
            new Document("x", 203).append("y", 102));

    collection.insertOne(doc);

    // get it (since it's the only one in there since we dropped the rest earlier on)
    Document myDoc = collection.find().first();
    System.out.println(myDoc);

    // now, lets add lots of little documents to the collection so we can explore queries and cursors
    List<Document> documents = new ArrayList<Document>();
    for (int i = 0; i < 100; i++) {
        documents.add(new Document("i", i));
    }
    collection.insertMany(documents);
    System.out.println(
            "total # of documents after inserting 100 small ones (should be 101) " + collection.count());

    // lets get all the documents in the collection and print them out
    MongoCursor<Document> cursor = collection.find().iterator();
    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    } finally {
        cursor.close();
    }

    for (Document cur : collection.find()) {
        System.out.println(cur);
    }

    // now use a query to get 1 document out
    myDoc = collection.find(eq("i", 71)).first();
    System.out.println(myDoc);

    // now use a range query to get a larger subset
    cursor = collection.find(gt("i", 50)).iterator();

    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    } finally {
        cursor.close();
    }

    // range query with multiple constraints
    cursor = collection.find(and(gt("i", 50), lte("i", 100))).iterator();

    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    } finally {
        cursor.close();
    }

    // max time
    collection.find().maxTime(1, TimeUnit.SECONDS).first();

    collection.drop();

    // ordered bulk writes
    List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
    writes.add(new InsertOneModel<Document>(new Document("_id", 4)));
    writes.add(new InsertOneModel<Document>(new Document("_id", 5)));
    writes.add(new InsertOneModel<Document>(new Document("_id", 6)));
    writes.add(
            new UpdateOneModel<Document>(new Document("_id", 1), new Document("$set", new Document("x", 2))));
    writes.add(new DeleteOneModel<Document>(new Document("_id", 2)));
    writes.add(new ReplaceOneModel<Document>(new Document("_id", 3), new Document("_id", 3).append("x", 4)));

    collection.bulkWrite(writes);

    collection.drop();

    collection.bulkWrite(writes, new BulkWriteOptions().ordered(false));

    // getting a list of databases
    for (String name : mongoClient.listDatabaseNames()) {
        System.out.println(name);
    }

    // drop a database
    mongoClient.dropDatabase("databaseToBeDropped");

    // create a collection
    database.createCollection("cappedCollection",
            new CreateCollectionOptions().capped(true).sizeInBytes(0x100000));

    for (String name : database.listCollectionNames()) {
        System.out.println(name);
    }

    // create an ascending index on the "i" field
    collection.createIndex(new Document("i", 1));

    // list the indexes on the collection
    for (final Document index : collection.listIndexes()) {
        System.out.println(index);
    }

    // create a text index on the "content" field
    collection.createIndex(new Document("content", "text"));

    collection.insertOne(new Document("_id", 0).append("content", "textual content"));
    collection.insertOne(new Document("_id", 1).append("content", "additional content"));
    collection.insertOne(new Document("_id", 2).append("content", "irrelevant content"));

    // Find using the text index
    Document search = new Document("$search", "textual content -irrelevant");
    Document textSearch = new Document("$text", search);
    long matchCount = collection.count(textSearch);
    System.out.println("Text search matches: " + matchCount);

    // Find using the $language operator
    textSearch = new Document("$text", search.append("$language", "english"));
    matchCount = collection.count(textSearch);
    System.out.println("Text search matches (english): " + matchCount);

    // Find the highest scoring match
    Document projection = new Document("score", new Document("$meta", "textScore"));
    myDoc = collection.find(textSearch).projection(projection).first();
    System.out.println("Highest scoring document: " + myDoc);

    // release resources
    mongoClient.close();
}