MongoDB(java操作)

一、 准备工作

MongoDB与java连接需要相应驱动,可用maven添加相应依赖:

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

或者自行下载添加至构建路径即可:mongodb驱动

二、 java操作数据库

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

public class Test {

    static MongoDatabase db = null; 
    static MongoClient mongoClient = null;

    public static void main(String[] args) {
        try {
            db = Connect("mydb");
            find("mycol");
            insert("mycol");
            find("mycol");
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            mongoClient.close();
        }
    }

    /**
     * 获得与数据库的连接
     * @param dbName
     * @return
     * @throws Exception
     */
    public static MongoDatabase Connect(String dbName) throws Exception{
        try {
            //启用Mongo客户端访问MongoDB服务
            mongoClient = new MongoClient("localhost", 27017);
            //连接到相应数据库
            MongoDatabase db = mongoClient.getDatabase(dbName);
            System.out.println("connect successfully");
            return db;
        } catch (Exception e) {
            throw new Exception();
        }
    }

    /**
     * 向数据库当中插入文档
     * @param collectionName
     */
    public static void insert(String collectionName){
        MongoCollection<Document> collection = db.getCollection(collectionName);
        /*
         * 创建org.bson.Document 参数为key-value键值对
         * 创建文档集合List
         * 将文档集合插入数据库当中
         * insertMany(List)可以插入多个文档
         * insertOne(Document)可以插入一个文档
         */
        Document document = new Document("title", "Mondbnew").
        append("description", "database").
        append("likes", 100).
        append("by", "super");
        List<Document> list = new ArrayList<>();
        list.add(document);
        collection.insertMany(list);
        System.out.println("insert successfuly");
    }

    /**
     * 检索数据库当中文档
     * @param collectionName
     */
    public static void find(String collectionName){
        MongoCollection<Document> collection = db.getCollection(collectionName);
        /*
         * 获取迭代器
         * 通过迭代器获取游标
         * 通过游标遍历文档
         */
        FindIterable<Document> findIterable = collection.find();
        MongoCursor<Document> cursor = findIterable.iterator();
        while(cursor.hasNext()){
            System.out.println(cursor.next());
        }
    }

    /**
     * 更新文档
     * @param collectionName
     */
    public static void update(String collectionName){
        MongoCollection<Document> collection = db.getCollection(collectionName);
        //更新文档 将原likes:100修改为likes:200
        collection.updateMany(Filters.eq("likes", 100), new Document("$set", new Document("likes", 200)));
        System.out.println("update successfly");
    } 

    /**
     * 删除文档
     * @param collectionName
     */
    public static void remove(String collectionName){
        MongoCollection<Document> collection = db.getCollection(collectionName);
        //删除符合条件的第一个文档
        collection.deleteOne(Filters.eq("likes", 200));
        //删除符合条件的第二个文档
        collection.deleteMany(Filters.eq("likes", 200));

    }
}
发布了31 篇原创文章 · 获赞 25 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/s_842499467/article/details/76763746
今日推荐