mongodb-javaAan de slag met mongodb-java


Opmerkingen

Deze sectie geeft een overzicht van wat mongodb-java is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen mongodb-java vermelden en naar de gerelateerde onderwerpen verwijzen. Aangezien de documentatie voor mongodb-java nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Versie Publicatiedatum
3.4.2 2017/01/26
3.4.1 2016/12/19
3.4.0 2016/11/27
3.3.0 2016/07/18
3.2.2 2016/02/16
3.2.1 2016/01/13
3.2.0 2015/12/07
3.1.1 2015/11/12
3.1.0 2015/10/07
3.0.4 2014/09/14
2.14.3 2016/07/18
2.14.2 2016/03/31
2.14.1 2016/01/13
2.14.0 2015/12/07
2.13.3 2015/09/08

Installatie of instellingen

Voorwaarde

Een lopende MongoDB server, meer details over dat hier .

Een Java-project opzetten

Het MongoDB Java-stuurprogramma wordt geleverd als een JAR-bestand en kan net als elke andere JAR in een project worden opgenomen. Bijvoorbeeld:

  • Maven: voeg een vermelding toe aan het gedeelte <dependencies> van je pom.xml .
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.4.2</version>
</dependency> 
 
  • Gradle: voeg de volgende afhankelijkheid toe aan uw build.gradle

compile 'org.mongodb:mongo-java-driver:3.4.2'

  • Manual Inclusion: downloaden van de JAR-bestand van hier en voeg deze toe aan classpath van je project.

Let op: de in de voorbeelden versie bovenstaande is de laatste stabiele versie op het moment van schrijven, maar u kunt kiezen voor een versie beschikbaar hier .

Het MongoDB Java-stuurprogramma gebruiken

Laten we een MongoClient , de eenvoudigste aanroep is:

MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
 

Dit veronderstelt dat de MongoDB-server wordt uitgevoerd op localhost op de standaardpoort en dat deze onbeveiligd is. Er zijn talloze varianten hiervan voor geverifieerde toegang, aangepaste verbindingsopties, verbinding met replicasets en sharde-clusters, alles wordt gedetailleerd behandeld in de Mongo DB Java Driver-documenten .

Nu we verbonden zijn, gaan we een database en een verzameling maken. MongoDB maakt impliciet een verzameling aan wanneer het eerste document erin wordt opgeslagen, dus laten we dat doen:

MongoDatabase database = mongoClient.getDatabase("starter");
MongoCollection<Document> collection = database.getCollection("superheroes");
Document document = new Document("name", "Superman");
collection.insertOne(document);
 

Opmerking: u kunt expliciet een verzameling maken, maar het bovenstaande gebruik komt vaker voor en past zeker beter bij een onderwerp 'aan de slag'.

Laten we nu kijken of we het document kunnen vinden dat we hebben gemaakt:

FindIterable<Document> documents = purchases.find(Filters.eq("name", "Superman"));
for (Document found : documents) {
    System.out.println(found.toJson());
}
 

De bovenstaande code geeft het volgende weer (het veld _id is de automatisch gegenereerde documentsleutel van MongoDB):

Gevonden document: {"_id": {"$ oid": "5981bd586d47c203904a9cf9"}, "name": "Superman"}

Nu we hebben geverifieerd dat we met succes een document hebben gemaakt, laten we het verwijderen:

DeleteResult deleteResult = purchases.deleteOne(Filters.eq("name", "Superman"));
System.out.println(String.format("Deleted %s document(s)", deleteResult.getDeletedCount()));
 

De bovenstaande code zal het volgende uitvoeren:

1 document (en) verwijderd

Compleet voorbeeld

Door de verschillende stukken samen te voegen, krijgen we:

import com.google.common.collect.Lists;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import org.bson.Document;

import java.util.List;

public class IntroducingTheMongoDBJavaDriver {

    public static void main(String... args) throws Exception {
        MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));

        MongoCollection<Document> superheroes = mongoClient.getDatabase("starter").getCollection("superheroes");

        Document document = new Document("name", "Superman");
        superheroes.insertOne(document);

        FindIterable<Document> documents = superheroes.find(Filters.eq("name", "Superman"));
        for (Document found : documents) {
            System.out.println(String.format("Found document: %s", found.toJson()));
        }

        DeleteResult deleteResult = superheroes.deleteOne(Filters.eq("name", "Superman"));
        System.out.println(String.format("Deleted %s document(s)", deleteResult.getDeletedCount()));

        long count = superheroes.count();
        System.out.println(String.format("Number of superheroes: %s", count));
    }
}