Mongodb 基本使用-增删改查

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w690333243/article/details/82465066
package com.test;

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

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.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.sun.javafx.geom.transform.GeneralTransform3D;
import com.sun.media.jfxmedia.events.AudioSpectrumListener;

import org.bson.Document;

/**
 * @author wangqx http://www.runoob.com/mongodb/mongodb-java.html
 */
public class MongodbUtil {
    public static final String MONGODB_HOST = "192.168.10.101";
    public static final int MONGODB_PORT = 17207;
    public static final String MONGODB_DB = "ssm";
    public static final String MONGODB_COLLECTION = "config";
    public static MongoClient mMongoClient = null;
    public static MongoDatabase mMongoDatabase = null;
    public static MongoCollection<Document> mMongoCollection;
    public MongoClient getMongoClient() {
        if (mMongoClient == null) {
            // 连接到 mongodb 服务
            mMongoClient = new MongoClient(MONGODB_HOST, MONGODB_PORT);
        }
        return mMongoClient;
    }

    public MongoDatabase getMongoDatabase(String db) {

        // 连接到数据库
        mMongoDatabase = mMongoClient.getDatabase(db);
        System.out.println("Connect to database:"+db+" successfully");

        return mMongoDatabase;
    }

    public void connectDbWithPwd() {
        try {
            // 连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
            // ServerAddress()两个参数分别为 服务器地址 和 端口
            ServerAddress serverAddress = new ServerAddress(MONGODB_HOST, MONGODB_PORT);
            List<ServerAddress> addrs = new ArrayList<ServerAddress>();
            addrs.add(serverAddress);

            // MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
            MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName",
                    "password".toCharArray());
            List<MongoCredential> credentials = new ArrayList<MongoCredential>();
            credentials.add(credential);

            // 通过连接认证获取MongoDB连接
            MongoClient mMongoClient = new MongoClient(addrs, credentials);

            // 连接到数据库
            MongoDatabase mMongoDatabase = mMongoClient.getDatabase(MONGODB_DB);
            System.out.println("Connect to database successfully");
        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    public void createCollection(String collection) {
        try {
            System.out.println("Connect to database successfully");
            mMongoDatabase.createCollection(collection);
            System.out.println("集合 "+collection+" 创建成功");

        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    public MongoCollection<Document> getCollection(String collectionName) {
        mMongoCollection = mMongoDatabase.getCollection(collectionName);
        System.out.println("集合 "+collectionName+" 选择成功");
        return mMongoCollection;
    }

    public void insertDocument(String collectionName) {
        try {
            // 插入文档
            /**
             * 1. 创建文档 org.bson.Document 参数为key-value的格式 2. 创建文档集合List<Document> 3.
             * 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用
             * mongoCollection.insertOne(Document)
             */
            Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100)
                    .append("by", "Fly");
            List<Document> documents = new ArrayList<Document>();
            documents.add(document);
            mMongoCollection.insertMany(documents);
            System.out.println("文档插入成功");
        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    public void searchDocument(String collectionName) {
        try {

            System.out.println("集合 test 选择成功");

            // 检索所有文档
            /**
             * 1. 获取迭代器FindIterable<Document> 2. 获取游标MongoCursor<Document> 3. 通过游标遍历检索出的文档集合
             */
            FindIterable<Document> findIterable = mMongoCollection.find();
            MongoCursor<Document> mongoCursor = findIterable.iterator();
            while (mongoCursor.hasNext()) {
                System.out.println(mongoCursor.next());
            }

        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    public void updateDocument(String collectionName) {
        try {

            System.out.println("集合 test 选择成功");

            // 更新文档 将文档中likes=100的文档修改为likes=200
            mMongoCollection.updateMany(Filters.eq("likes", 100), new Document("$set", new Document("likes", 200)));
            // 检索查看结果
            FindIterable<Document> findIterable = mMongoCollection.find();
            MongoCursor<Document> mongoCursor = findIterable.iterator();
            while (mongoCursor.hasNext()) {
                System.out.println(mongoCursor.next());
            }

        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    public void deleteDocument() {
        try {
            // 删除符合条件的第一个文档
            mMongoCollection.deleteOne(Filters.eq("likes", 200));
            // 删除所有符合条件的文档
            mMongoCollection.deleteMany(Filters.eq("likes", 200));
            // 检索查看结果
            FindIterable<Document> findIterable = mMongoCollection.find();
            MongoCursor<Document> mongoCursor = findIterable.iterator();
            while (mongoCursor.hasNext()) {
                System.out.println(mongoCursor.next());
            }

        } catch (Exception e) {
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MongodbUtil mongodb = new MongodbUtil();
        mMongoClient = mongodb.getMongoClient();
        mMongoDatabase = mongodb.getMongoDatabase(MONGODB_DB);
        mMongoCollection = mongodb.getCollection(MONGODB_COLLECTION);
        System.out.println("mMongoCollection:"+mMongoCollection);
        mongodb.insertDocument(MONGODB_COLLECTION);

    }

}

通过 _id 获取数据

Query<Config> query = ds.createQuery(Config.class).field("_id").equal(new ObjectId(id));

排序

Query<Config> query = ds.createQuery(Config.class);

        long total = query.countAll();
        List<Config> pageData = query.order("-key").offset(pageIndex * pageSize).limit(pageSize).asList();

https://blog.csdn.net/u010812864/article/details/70752540
https://blog.csdn.net/qq_16504067/article/details/72779448
https://blog.csdn.net/sunshinegyan/article/details/78328596
https://blog.csdn.net/wab719591157/article/details/73379844
https://blog.csdn.net/shenjianxz/article/details/75115175
https://blog.csdn.net/qq_35981283/article/details/77826537
https://www.cnblogs.com/Laymen/p/6122108.html

http://daimajia.iteye.com/blog/2322824 mongodb注解

猜你喜欢

转载自blog.csdn.net/w690333243/article/details/82465066