Main Tutorials

Java MongoDB : Get collection from database

In Java, you can use db.getCollection(“your collection name”) to get a single collection to use.


DBCollection collection = db.getCollection("yourCollection");

If you do not know the collection name, use db.getCollectionNames() to get the entire list of collection names from a selected database.


DB db = mongo.getDB("yourdb");
Set<String> collections = db.getCollectionNames();

for (String collectionName : collections) {
	System.out.println(collectionName);
}

If “yourdb” contains the collection name “yourCollection”, then you will see the following result :


system.indexes  //system collection
system.users     //system colection
yourCollection

Full example to get collection from MongoDB, via Java driver.


package com.mkyong.core;

import java.net.UnknownHostException;
import java.util.Set;

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/**
 * Java : Get collection from MongoDB
 * 
 */
public class GetCollectionApp {
  public static void main(String[] args) {

    try {

	Mongo mongo = new Mongo("localhost", 27017);
	DB db = mongo.getDB("yourdb");

	// get list of collections
	Set<String> collections = db.getCollectionNames();

	for (String collectionName : collections) {
		System.out.println(collectionName);
	}

	// get a single collection
	DBCollection collection = db.getCollection("yourCollection");
	System.out.println(collection.toString());

	System.out.println("Done");

    } catch (UnknownHostException e) {
	e.printStackTrace();
    } catch (MongoException e) {
	e.printStackTrace();
    }

  }
}

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
5 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Vibhs
4 years ago

getDB() is deprecated, so kindly update the post

surya prakash singh
6 years ago

I am new in java,
i want to know , which one is best to store the records in collection arraylist or linkedlist from database

vmss
6 years ago

Depende de lo que quieras hacer, ArrayList si vas acceder mucho a los registros pues es O(1) mientras que en la listas es O(n/4), pero si vas a acceder a la cabeza o cola será igual O(1), el problema de el ArrayList es que es un arreglo dinámico pero por ser arreglo cada vez que se llene y no tenga memoria adyacente la inserción es O(n) pues tiene que copiar todo el arreglo a un sitio de la memoria donde pueda entrar el arreglo junto, aunque en promedio en O(1). Las listas también tienen la desventaja de los apuntadores, que dependiendo pueden ser un lio en la sobrecarga de memoria por los apuntadores que se crean pero solo es un problema si son muchos nodos creados y en estas siempre insertar es de O(1).

Así que sólo debes ver que es lo que vas a hacer y basar en eso tu decisión.
Si vas empezando pues experimenta con los dos y ya cuando utilices datos grandes puedes un día revisar el uso de memoria

Shubham Aggarwal
7 years ago

getCollection(“”) method is now deprecated. Do we have an alternative?

gla
7 years ago

bonsoir, svp aidez moi à resoudre ce probleme: Dans ma Base de Données (MongoDB) j’ai deux tables. La premiere table est celle de Country et la seconde table est celle de Languages.Dans la table Country j’ai inseré comme exemple (Canada:English ,Frensh et France:Frensh) et dans la table Languages j’ai inseré seulement comme exemple(English et Frensh).Ma question est que comment creer une classe qui va me permettre de selectionner dans la table Language comme exemple (Frensh) et me donne la liste de tous les Country qui parle le (Frensh tel que Canada et France qui se trouve la table Country)?