Mongo-Java

DB 연결
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
public class MongoJava {
    public static void main(String[] args) {
        try {
            MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017"));
            System.out.println("접속 성공--- ");
            MongoIterable<String> dblist = mongoClient.listDatabaseNames();
            System.out.println("[데이터베이스 리스트]");
            for (String name : dblist)
                System.out.println(name);
            MongoDatabase db = mongoClient.getDatabase("edudb");
            MongoIterable<String> clist = db.listCollectionNames();
            System.out.println("[edudb 데이터베이스의 컬렉션 리스트]");
            for (String name : clist)
                System.out.println(name);
            mongoClient.close();
        } catch (Exception exception) {
            System.err.println(exception.getClass().getName() + ": " + exception.getMessage());
        }
    }
}
로그메세지 해제
import java.util.logging.Level;
import java.util.logging.Logger;
Logger mongoLogger = Logger.getLogger("org.mongodb.driver");
mongoLogger.setLevel(Level.SEVERE);
도큐먼트 읽기
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class SelectMongo1 {
    public static void main(String[] args) {
        try (MongoClient mongoClient = new MongoClient("localhost", 27017);) {  
            MongoDatabase db = mongoClient.getDatabase("edudb");                
            MongoCollection<Document> collection = db.getCollection("book");    
            MongoCursor<Document> cursor = collection.find().iterator();        
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ":" + e.getMessage());
        }
    }
}
모든 도큐먼트를 읽어오는 다양한 방법
        try (MongoClient mongoClient = new MongoClient("localhost", 27017)) {
            MongoDatabase db = mongoClient.getDatabase("edudb");                
            MongoCollection<Document> collection = db.getCollection("book");    
            MongoCursor<Document> cursor = collection.find().iterator();
            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }
            System.out.println("--------------------------------");
            cursor = collection.find().iterator();                              
            while (cursor.hasNext()) {
                Document doc = cursor.next();
                System.out.println(doc.get("name") + " : " + doc.get("price"));
            }
            System.out.println("--------------------------------");
            Consumer<Document> printConsumer = new Consumer<Document>() {       
                @Override
                public void accept(final Document document) {
                    System.out.println(document.toJson());
                }
            };
            collection.find().forEach(printConsumer);
        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ":" + e.getMessage());
        }
원하는 도큐먼트를 읽어오는 다양한 방법
        try (MongoClient mongoClient = new MongoClient("localhost", 27017)) {
            System.out.println("--------------------------------");
            MongoDatabase db = mongoClient.getDatabase("edudb");             
            MongoCollection<Document> collection = db.getCollection("book"); 
            Document doc = collection.find().first();
            System.out.println(doc.toJson());                                
            System.out.println("--------------------------------");
            FindIterable<Document> dlist = collection.find(Filters.gt("price", 10000)); 
            for (Document doc1 : dlist)
                System.out.println(doc1.toJson());
            System.out.println("--------------------------------");
            dlist = collection.find(Filters.eq("name", "javascript"));
            for (var doc1 : dlist)
                System.out.println(doc1.toJson());
            System.out.println("--------------------------------");
            dlist = collection.find(Filters.regex("name", "^ja"));
            for (var doc1 : dlist)
                System.out.println(doc1.toJson());
            System.out.println("--------------------------------");
            dlist = collection.find(Filters.and(Filters.gt("price", 10000), Filters.lte("price", 20000)));
            for (Document doc1 : dlist)
                System.out.println(doc1.toJson());
        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ":" + e.getMessage());
        }
도큐먼트 삽입
package com.mongo.level1;
import java.util.function.Consumer;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class InsertMongo1 {
    public static void main(String[] args) {
        try {
            MongoClient mongoClient = new MongoClient("localhost", 27017);
            MongoDatabase db = mongoClient.getDatabase("edudb");
            MongoCollection<Document> collection = db.getCollection("book");
            Document doc = new Document("name", "spring").append("price", "30000");
            collection.insertOne(doc);		
            
            List<Document> documents = new ArrayList<Document>();
            for (int i = 1; i <= 10; i++) {
                documents.add(new Document("name", "book" + i).append("price", 10000 * i));
            }
            collection.insertMany(documents);	
            Consumer<Document> printConsumer = new Consumer<Document>() {
                @Override
                public void accept(final Document document) {
                    System.out.println(document.toJson());
                }
            };
            collection.find().forEach(printConsumer);
            mongoClient.close();
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}
도큐먼트 수정
package com.mongo.level1;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
public class UpdateMongo1 {
    public static void main(String[] args) {
        Logger mongoLogger = Logger.getLogger("org.mongodb.driver");
        mongoLogger.setLevel(Level.SEVERE);
        try {
            MongoClient mongoClient = new MongoClient();
            MongoDatabase db = mongoClient.getDatabase("edudb");
            MongoCollection<Document> collection = db.getCollection("book");
            collection.updateOne(Filters.eq("name", "spring"), Updates.set("price", 29999));
            collection.updateOne(Filters.eq("name", "spark"), Updates.inc("price", 11));
            MongoCursor<Document> cursor = collection.find().iterator();
            while (cursor.hasNext()) {
                Document doc1 = cursor.next();
                System.out.println(doc1.get("name") + " : " + doc1.get("price"));
            }
            mongoClient.close();
        } catch (Exception exception) {
            System.err.println(exception.getClass().getName() + ": " + exception.getMessage());
        }
        try {
            MongoClient mongoClient = new MongoClient();
            MongoDatabase db = mongoClient.getDatabase("edudb");
            MongoCollection<Document> collection = db.getCollection("book");
            Bson filter = Filters.eq("name", "spring");
            Document doc = new Document("name", "SPRING").append("price", 30000);
            collection.replaceOne(filter, doc);
            MongoCursor<Document> cursor = collection.find().iterator();
            while (cursor.hasNext()) {
                Document doc1 = cursor.next();
                System.out.println(doc1.get("name") + " : " + doc1.get("price"));
            }
            mongoClient.close();
        } catch (Exception exception) {
            System.err.println(exception.getClass().getName() + ": " + exception.getMessage());
        }
    }
}
도큐먼트 삭제
package com.mongo.level1;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
public class DeleteMongo1 {
    public static void main(String[] args) {
        Logger mongoLogger = Logger.getLogger("org.mongodb.driver");
        mongoLogger.setLevel(Level.SEVERE);
        try {
            MongoClient mongoClient = new MongoClient();
            MongoDatabase db = mongoClient.getDatabase("edudb");
            MongoCollection<Document> collection = db.getCollection("book");
            Bson filter = Filters.eq("name", "book1");
            collection.deleteOne(filter);
            MongoCursor<Document> cursor = collection.find().iterator();
            while (cursor.hasNext()) {
                Document doc1 = cursor.next();
                System.out.println(doc1.get("name") + " : " + doc1.get("price"));
            }
            filter = Filters.gt("price", 50000);
            collection.deleteMany(filter);
            cursor = collection.find().iterator();
            while (cursor.hasNext()) {
                Document doc1 = cursor.next();
                System.out.println(doc1.get("name") + " : " + doc1.get("price"));
            }
            mongoClient.close();
        } catch (Exception exception) {
            System.err.println(exception.getClass().getName() + ": " + exception.getMessage());
        }
    }
}