Principes de base de MongoDB: Premiers pas avec CRUD avec JAVA

introduction

MongoDB est un représentant du documentaire dans le monde NoSQL, et CRUD est facile à mettre en œuvre. Il est facile de résumer en utilisant l'API CRUD en JAVA.

Présentation de la bibliothèque de pilotes

build.gradle


// https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver
compileInclude group: 'org.mongodb', name: 'mongo-java-driver', version: '3.11.0'

Create

Insérer une image

image.png

Exemple d'insertion JAVA

MongoDBTest.java


package mongodb;

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

import org.bson.Document;

public class MongoDBTest {

	public static void main(String[] args) {
		//Générer le client MongoDB
		MongoClient client = MongoClients.create("mongodb://localhost:27017");
		//Obtenir un objet DB
		MongoDatabase db = client.getDatabase("mydb");
		//Obtenir la collection d'utilisateurs
		MongoCollection<Document> users = db.getCollection("users");

		//Définir les attributs utilisateur
		Document user = new Document();
		user.append("lastName", "tanaka");
		user.append("firstName", "ichiro");
		user.append("gender", "Masculin");

		//Insérer dans DB
		users.insertOne(user);

		//Fermer le client
		client.close();
	}
}

Image de la collection

image.png

Inserts multiples

List<Document> userList = new ArrayList<Document>();
		
Document user1 = new Document();
user1.append("lastName", "tanaka");
		
Document user2 = new Document();
user2.append("lastName", "yamada");
		
userList.add(user1);
userList.add(user2);
		
//Insérer la liste dans DB
users.insertMany(userList);

Read

Rechercher une image

image.png

Find One Obtenez le premier cas avec la sensation de db.collection.find (filter) .first (). Si vous souhaitez effectuer une recherche par _id, la première méthode est pratique.

MongoDBTest.java


package mongodb;

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

import org.bson.Document;
import org.bson.types.ObjectId;

public class MongoDBTest {

	public static void main(String[] args) {
		//Générer le client MongoDB
		MongoClient client = MongoClients.create("mongodb://localhost:27017");
		//Obtenir un objet DB
		MongoDatabase db = client.getDatabase("mydb");
		//Obtenir la collection d'utilisateurs
		MongoCollection<Document> users = db.getCollection("users");

		// _Recherche par identifiant
		Document user = users.find(Filters.eq("_id", new ObjectId("5d858b36c491de05900c4e32"))).first();
		if (user != null) {
			System.out.println("lastName:" + user.getString("lastName"));
		}

		//Fermer le client
		client.close();
	}
}

production:

lastName:tanaka

Find List Il est possible d'affiner en passant la condition de recherche au paramètre de la méthode find. Différentes méthodes sont fournies dans la classe Filters. image.png image.png

Rechercher un échantillon

//Rechercher plusieurs personnes par nom de famille
MongoCursor<Document> cursor = users.find(Filters.or(Filters.in("lastName", "tanaka", "yamada"))).cursor();
while (cursor.hasNext()) {
    Document user = (Document) cursor.next();
    // do something
}

//Il est également pratique de convertir en une liste au lieu d'un curseur.
// List<Document> documents = users.find(Filters.or(Filters.in("lastName", "tanaka", "yamada"))).into(new ArrayList<Document>());

Trier, sauter, limiter, etc.

Document sort = new Document();
sort.append("updateDate", -1);
MongoCursor<Document> cursor = users.find(Filters.in("lastName", "tanaka", "yamada")).sort(sort).skip(20).limit(10).cursor();

Update

Mettre à jour l'image

image.png

Update One

Mettre à jour une donnée avec la méthode updateOne

MongoDBTest.java


package mongodb;

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

import java.util.Date;

import org.bson.Document;
import org.bson.types.ObjectId;

public class MongoDBTest {

	public static void main(String[] args) {
		//Générer le client MongoDB
		MongoClient client = MongoClients.create("mongodb://localhost:27017");
		//Obtenir un objet DB
		MongoDatabase db = client.getDatabase("mydb");
		//Obtenir la collection d'utilisateurs
		MongoCollection<Document> users = db.getCollection("users");
		
		//Mettre à jour les conditions
		Document filter = new Document();
		filter.append("_id", new ObjectId("5d858b36c491de05900c4e32"));
		
		//Mettre à jour les données
		Document updateSet = new Document();
		updateSet.append("lastName", "Suzuki");
		updateSet.append("updateDate", new Date());
		
		//objet de mise à jour
		Document update = new Document();
		update.append("$set", updateSet);
		
		//mise à jour
		users.updateOne(filter , update);
		
		//Fermer le client
		client.close();
	}
}

Données de collecte mises à jour

image.png

Update Many Si vous souhaitez mettre à jour les données qui correspondent aux conditions, utilisez la méthode updateMany. image.png

Manuel de mise à jour: https://docs.mongodb.com/manual/tutorial/update-documents/

Replace One Si vous souhaitez remplacer complètement le document au lieu de mettre à jour certaines données, utilisez la méthode replaceOne.

image.png

//Mettre à jour les conditions
Document filter = new Document();
filter.append("_id", new ObjectId("5d858b36c491de05900c4e32"));
		
//Mettre à jour les données
Document update = new Document();
update.append("lastName", "Suzuki");
update.append("updateDate", new Date());
		
//Remplacement
users.replaceOne(filter, update);

Une chose à noter est que si vous traitez un document recherché dans la base de données comme données de remplacement, une erreur se produira. mauvais exemple:

//Obtenir des données de DB
Document user = users.find(Filters.eq("_id", new ObjectId("5d858b36c491de05900c4e32"))).first();
user.append("memo", "new user");
		
//Remplacement(Faux_Puisqu'il s'agit d'un identifiant, une erreur se produira. le même_Si c'est id, il n'y a pas de problème.)
users.replaceOne(Filters.eq("_id", new ObjectId("5d859c77b64c3286a4d29d90")), user);

Si le _id est différent, vous pouvez éliminer l'erreur en supprimant le champ _id de l'utilisateur. Si vous disposez de données de version, vous pouvez utiliser la méthode replaceOne.

//Obtenir des données de DB
Document user = users.find(Filters.eq("_id", new ObjectId("5d858b36c491de05900c4e32"))).first();
user.append("memo", "new user");
user.remove("_id");

Delete

Image supprimée

image.png

deleteOne users.deleteOne(Filters.eq("_id", new ObjectId("5d859c77b64c3286a4d29d90")));

deleteMany ʻUsers.deleteMany (Filters.eq ("lastName", "Suzuki")); `

Supprimer la méthode associée

image.png

Manuel: https://docs.mongodb.com/manual/ CRUD (image du texte): https://docs.mongodb.com/manual/crud/

c'est tout

Recommended Posts

Principes de base de MongoDB: Premiers pas avec CRUD avec JAVA
Paramètres pour démarrer avec MongoDB avec python
Premiers pas avec Python Bases de Python
Premiers pas avec Python pour PHPer-Super Basics
Premiers pas avec Android!
1.1 Premiers pas avec Python
Premiers pas avec apache2
Premiers pas avec Python
Premiers pas avec Django 1
Introduction à l'optimisation
Premiers pas avec AWS IoT facilement en Python
Premiers pas avec Numpy
Premiers pas avec Spark
Premiers pas avec Python
Premiers pas avec Pydantic
Premiers pas avec Jython
Premiers pas avec Django 2
Traduire Premiers pas avec TensorFlow
Introduction à Tkinter 2: Button
Premiers pas avec Go Assembly
Premiers pas avec PKI avec Golang ―― 4
Premiers pas avec Python Django (1)
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Django avec PyCharm
Premiers pas avec Python Django (5)
Introduction à Flask Partie 2: Affichage des blocs de données dans les feuilles de style
Premiers pas avec Python responder v2
Introduction à Git (1) Stockage d'historique
Premiers pas avec Sphinx. Générer docstring avec Sphinx
Premiers pas avec les applications Web Python
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Sparse Matrix avec scipy.sparse
Premiers pas avec Julia pour Pythonista
Premiers pas avec Cisco Spark REST-API
Principes de base pour toucher MongoDB avec MongoEngine
Commençant par USD sur Windows
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python 3.8 sous Windows
Premiers pas avec Python pour les fonctions PHPer
Démarrez avec Python avec Blender
Premiers pas avec CPU Steal Time
Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Dynamo de Python boto
Commençons avec TopCoder en Python (version 2020)
Premiers pas avec Lisp pour Pythonista: Supplément
Premiers pas avec Heroku, déploiement de l'application Flask
Premiers pas avec TDD avec Cyber-dojo chez MobPro
Démarrer avec Python avec 100 coups sur le traitement du langage
Premiers pas avec le dessin avec matplotlib: écrire des fonctions simples
Premiers pas avec la traduction japonaise du modèle séquentiel Keras
[Français] Premiers pas avec Rust pour les programmeurs Python