Maison  >  Article  >  Java  >  Partage de code du guide d'utilisation de MongoDB en Java

Partage de code du guide d'utilisation de MongoDB en Java

黄舟
黄舟original
2017-04-01 10:39:151551parcourir

MongoDB est une base de données NoSQL très populaire aujourd'hui. Cet article explique comment utiliser le pilote Java de MongoDB pour faire fonctionner MongoDB.

1. Présentez le package de pilotes Java MongoDB

Si le projet Java qui doit faire fonctionner MongoDB est un projet Maven, vous pouvez ajouter la configuration suivante à les dépendances.

<dependencies>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.13.2</version>
    </dependency>
</dependencies>

Ou utilisez-le en téléchargeant directement le package jar, adresse de téléchargement : mongo-java-driver-2.13.2.jar.

Pour plus de détails sur la façon d'introduire le package jar MongoDB, veuillez vous référer à la documentation officielle.

2. Connectez-vous à MongoDB

Vous pouvez utiliser MongoClient pour vous connecter à MongoDB L'utilisation de MongoClient est la suivante :

MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("mydb");

Le code ci-dessus. se connecte à localhost:27017 Accédez au service MongoDB et spécifiez d'utiliser la base de données mydb. Après vous être connecté, vous pouvez effectuer d'autres opérations sur cette base de données.

Il convient de souligner que MongoClient est threadsafe et peut partager le même MongoClient dans un environnement multi-processus. De manière générale, dans une application, il vous suffit de générer une instance MongoClient globale, puis d'utiliser cette instance à d'autres endroits du programme.

3. Authentification

Vous pouvez utiliser plusieurs méthodes pour authentifier la connexion. Deux méthodes sont présentées ci-dessous.

1. Méthode 1 : La méthode

de la classe MongoCredential

MongoCredentialcreateCredential peut spécifier le nom d'utilisateur d'authentification, le mot de passe et la base de données utilisés, et renvoyer un MongoCredential Objet. La déclaration de sa méthode est la suivante :

static MongoCredential createCredential(String userName, String database, char[] password)

Par exemple,

MongoCredential credential = MongoCredential.createCredential("user", "mydb", "password".toCharArray();

Ce qui précède crée un objet MongoCredential avec le nom d'utilisateur user, le mot de passe password et la base de données mydb .

générera l'objet MongoCredential comme paramètre MongoClient de la fonction constructeur . Puisque le MongoClient constructeur est <a href="http://www.php.cn/wiki/1059.html" target="_blank">List<code><a href="http://www.php.cn/wiki/1059.html" target="_blank">List</a>c8197b9f60b4d3b2d4d80193ff32d39a< ; type, il doit donc d'abord être construit dans une liste, puis transmis. Un exemple d'authentification complet est le suivant :

MongoCredential credential = MongoCredential.createCredential("user", "mydb", "password".toCharArray()); 
ServerAddress serverAddress = new ServerAddress("localhost", 27017); 
MongoClient mongoClient = new MongoClient(serverAddress, Arrays.asList(credential)); 
DB db = mongoClient.getDB("mydb");

2. Méthode 2 : MongoClientURI

Vous pouvez également utiliser MongoClientURI pour terminer l'authentification MongoDB, qui représente un objet URI. Le constructeur de MongoClientURI accepte une chaîne de type String Le format de cette chaîne est le suivant :

mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

L'objet MongoClientURI généré est utilisé comme paramètre du. MongoClient constructeur , l'exemple d'authentification complet est le suivant :

String sURI = String.format("mongodb://%s:%s@%s:%d/%s", "user", "password", "localhost", 27017, "mydb"); 
MongoClientURI uri = new MongoClientURI(sURI); 
MongoClient mongoClient = new MongoClient(uri); 
DB db = mongoClient.getDB("mydb");

4. Obtenez une collection

DBCollection coll = db.getCollection("mycol");

Ensuite, vous pouvez effectuer des opérations sur la collection spécifiée, par exemple, insérer , supprimer , rechercher, mettre à jour des documents, etc.

5. Insérer un document

Par exemple, un document est représenté par Json comme suit,

{ “name”: “mongo”, “info”: { “ver”: “3.0” } }

doit maintenant être inséré dans le collection mycol. Pour l'insérer dans une collection, un document peut être construit en utilisant BasicDB<code>BasicDB<a href="http://www.php.cn/wiki/60.html" target="_blank">Object</a>Object

.
BasicDBObject doc = new BasicDBObject("name", "mongo").append("info", new BasicDBObject("ver", "3.0"));
coll.insert(doc);

6. Rechercher des documents

1. Rechercher un document qualifié via findOne

findOneVous pouvez trouver un document qualifié via

. Par exemple, pour la collection mycol ci-dessus, l'exécution de la commande suivante :
DBObject myDoc = coll.findOne();
System.out.println(myDoc);

findOne affichera le premier document de la collection mycol. Vous pouvez également rechercher un document répondant aux conditions de recherche en précisant les paramètres de recherche de

.

2. Rechercher tous les documents qui remplissent les conditions via find

findDBCursor est utilisé pour rechercher des documents qui remplissent les conditions. Il renvoie un objet DBCursor, qui peut être obtenu par parcours. l'objet
. Tous les documents correspondant aux critères de recherche.

À des fins d'illustration et de test, nous insérons d'abord un lot de documents dans les formats suivants
{ “i”: value }
for (int i=0; i < 100; i++) {
    coll.insert(new BasicDBObject("i", i));
}

find L' exemple d'utilisation

est le suivant :
DBCursor cursor = coll.find();
try {
   while(cursor.hasNext()) {
       System.out.println(cursor.next());
   }
} finally {
   cursor.close();
}

Tous les documents de la collection mycol seront édités.

Vous pouvez également préciser les conditions de recherche, par exemple :

BasicDBObject query = new BasicDBObject("i", 71);

DBCursor cursor = coll.find(query);

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

Pour le cas où les conditions de recherche incluent l'$opérateur, par exemple le shell mongo suivant commande :

db.coll.find({i: {$gte: 50}});

Vous pouvez utiliser DBObject pour générer des conditions de recherche,

// find all where i >= 50
BasicDBObject query = new BasicDBObject("i", new BasicDBObject("$gte", 50));

DBCursor cursor = coll.find(query);
try {
    while (cursor.hasNext()) {
        System.out.println(cursor.next());
    }
} finally {
    cursor.close();
}

7. Mettre à jour le document

BasicDBObject query = new BasicDBObject("i", 70);
BasicDBObject up = new BasicDBObject("$set", new BasicDBObject("i", 100));
coll.update(query, up);

La déclaration ci-dessus met à jour le document avec i égal à 70. La valeur est égale à 100.

与我们常用的更新文档的mongo语句一样,DBCollection还包含了savefindAndModify等更新文档的方法,其使用方法在此不再赘述,可以参考API说明文档即可。

八、删除文档

可以通过生成一个DBObject对象来删除指定的文档,例如:

BasicDBObject query = new BasicDBObject("i", 71);
coll.remove(query);

上面的语句删除i为71的文档。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn