mongodb3.4-java

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;

import org.bson.Document;

import java.util.Arrays;

import com.mongodb.Block;
import com.mongodb.client.MongoCursor;

import static com.mongodb.client.model.Filters.*;

import com.mongodb.client.result.DeleteResult;

import static com.mongodb.client.model.Updates.*;

import com.mongodb.client.result.UpdateResult;

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

//http://mongodb.github.io/mongo-java-driver/3.4/driver/getting-started/quick-start/
public class MongoTest {
public static void main(String[] args) {
/*MongoClient mongoClient = new MongoClient( “localhost” );
MongoClient mongoClient = new MongoClient( “localhost” , 27017 );
MongoClientURI connectionString = new MongoClientURI(“mongodb://localhost:27017”);
MongoClient mongoClient = new MongoClient(connectionString);
*/
// MongoClient mongoClient = new MongoClient();

    // 连接副本集
    /*MongoClient mongoClient = new MongoClient(new MongoClientURI(
            "mongodb://host1:27017,host2:27017,host3:27017"));
    MongoClient mongoClient = new MongoClient(
            new MongoClientURI(
              "mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myReplicaSet"));
    MongoClient mongoClient = new MongoClient(
            Arrays.asList(new ServerAddress("host1", 27017),
                          new ServerAddress("host2", 27017),
                          new ServerAddress("host3", 27017)));*/
    // 连接分片
    /*  MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
    MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017"));
    MongoClient mongoClient = new MongoClient(
               new MongoClientURI("mongodb://host1:27017,host2:27017"));
    MongoClient mongoClient = new MongoClient(
               Arrays.asList(new ServerAddress("host1", 27017),
                             new ServerAddress("host2", 27017)));*/

    // 连接设置
    // TLS/SSL认证方式1
    /*MongoClientURI uri = new MongoClientURI(
            "mongodb://user1:pwd1@host1/?authSource=db1&ssl=true");
    MongoClient mongoClient = new MongoClient(uri);*/

    // 方式2
    MongoCredential credential = MongoCredential.createCredential("user",
            "database", "password".toCharArray());
    MongoClientOptions options = MongoClientOptions.builder()
            .sslEnabled(true).build();
    MongoClient mongoClient = new MongoClient(new ServerAddress("host1",
            27017), Arrays.asList(credential), options);



    MongoDatabase database = mongoClient.getDatabase("mydb");
    MongoCollection<Document> collection = database.getCollection("test");

    // 创建document
    Document doc = new Document("name", "MongoDB")
            .append("type", "database").append("count", 1)
            .append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
            .append("info", new Document("x", 203).append("y", 102));
    collection.insertOne(doc);

    // 插入多个文档
    List<Document> documents = new ArrayList<Document>();
    for (int i = 0; i < 100; i++) {
        documents.add(new Document("i", i));
    }
    collection.insertMany(documents);

    System.out.println(collection.count());

    // 获取第一个文档
    Document myDoc = collection.find().first();
    System.out.println(myDoc.toJson());

    // 使用迭代器迭代所有文档
    MongoCursor<Document> cursor = collection.find().iterator();
    try {
        while (cursor.hasNext()) {
            System.out.println(cursor.next().toJson());
        }
    } finally {
        cursor.close();
    }
    for (Document cur : collection.find()) {
        System.out.println(cur.toJson());
    }

    // 指定查询
    myDoc = collection.find(eq("i", 71)).first();
    System.out.println(myDoc.toJson());

    // 获取与文档匹配的所有文档 i > 50
    Block<Document> printBlock = new Block<Document>() {
        @Override
        public void apply(final Document document) {
            System.out.println(document.toJson());
        }
    };
    collection.find(gt("i", 50)).forEach(printBlock);
    // 指定范围50<i<=100
    collection.find(and(gt("i", 50), lte("i", 100))).forEach(printBlock);

    // i=10的文档i设置为110
    collection.updateOne(eq("i", 10), new Document("$set", new Document(
            "i", 110)));
    // i<100所有文档增100
    UpdateResult updateResult = collection.updateMany(lt("i", 100),
            inc("i", 100));
    System.out.println(updateResult.getModifiedCount());

    collection.deleteOne(eq("i", 110));
    DeleteResult deleteResult = collection.deleteMany(gte("i", 100));
    System.out.println(deleteResult.getDeletedCount());

    // 创建索引,升序1,降序-1
    collection.createIndex(new Document("i", 1).append("name", 1));

    mongoClient.close();
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值