Java链接Mongodb

  1. 首先下载Jar包
    官方下载链接:http://mongodb.github.io/mongo-java-driver/
    下载示例1
    选择左侧Installation Guide,依次下载directly,bson,mongodb-dirve-core
    下载示例2
    下载示例3
    下载示例4
    下载示例5
    2.导入3个jar包到项目中,然后按照如下Text程序实现增删改查
/** 
* test 
*/  
private void test() {  
         // 获取链接  
        MongoClient mongoClient = new MongoClient("192.168.189.231", 27017);  
        // 获取数据库  
        MongoDatabase database = mongoClient.getDatabase("runoob");  
        // 进入某个文档集  
        MongoCollection<Document> collection = database.getCollection("huodong");  

        /********************** 数据插入 ****************************/  
        // // 创建新文档  
        // Document doc = new Document("name", "MongoDB")  
        // .append("type", "database").append("count", 1)  
        // .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());  
        // }  

        // // 根据条件获取某分文档 eq:==  
        // Document myDoc = collection.find(eq("i", 71)).first();  
        // System.out.println(myDoc.toJson());  

        // 通过查询语句一次性获取多个数据  
        // Block<Document> printBlock = new Block<Document>() {  
        // @Override  
        // public void apply(final Document document) {  
        // System.out.println(document.toJson());  
        // }  
        // };  
        // 获得所有大于50的  
        // collection.find(gt("i", 50)).forEach(printBlock);  
        // 大于50 小于 100  
        // collection.find(and(gt("i", 50), lte("i", 100))).forEach(printBlock);  

        // 对输出文档进行排序,-1为递减,1为递增  
        // 官方文档的例子有误:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/#sorting-documents  
        // Document myDoc = collection.find(exists("i"))  
        // .sort(new BasicDBObject("i", -1)).first();  
        // System.out.println(myDoc.toJson());  

        // 选择性输出结果中的元素,0为不显示,1为显示  
        // 官方文档中的例子又不能用:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/#projecting-fields  
        // BasicDBObject exclude = new BasicDBObject();  
        // exclude.append("_id", 0);  
        // // exclude.append("count", 0);  
        // exclude.append("name", 1);  
        // exclude.append("info", 1);  
        // Document myDoc = collection.find().projection(exclude).first();  
        // System.out.println(myDoc.toJson());  

        /************************* 修改数据库中数据 *************************************/  

        // 修改时的参数:  
        // $inc 对指定的元素加  
        // $mul 乘  
        // $rename 修改元素名称  
        // $setOnInsert 如果以前没有这个元素则增加这个元素,否则不作任何更改  
        // $set 修改制定元素的值  
        // $unset 移除特定的元素  
        // $min 如果原始数据更大则不修改,否则修改为指定的值  
        // $max 与$min相反  
        // $currentDate 修改为目前的时间  

        // //修改第一个符合条件的数据  
        // $set 为修改  
        // collection.updateOne(eq("i", 10), new Document("$set", new  
        // Document("i", 110)));  
        // // 获取全部文档,可以看到以前10的地方变成了110  
        // for (Document cur : collection.find()) {  
        // System.out.println(cur.toJson());  
        // }  

        // 批量修改数据并且返回修改的结果,讲所有小于100的结果都加100  
        // UpdateResult updateResult = collection.updateMany(lt("i", 100),  
        // new Document("$inc", new Document("i", 100)));  
        // // 显示发生变化的行数  
        // System.out.println(updateResult.getModifiedCount());  
        // // 获取全部文档,可以看到除了刚才修改的110其他的全为了100  
        // for (Document cur : collection.find()) {  
        // System.out.println(cur.toJson());  
        // }  

        /************************** 删除数据 *****************************/  
        // 删除第一个符合条件的数据  
        // collection.deleteOne(eq("i", 110));  
        // // 获取全部文档,可以看到没有110这个数了  
        // for (Document cur : collection.find()) {  
        // System.out.println(cur.toJson());  
        // }  

        // 删除所有符合条件的数据,并且返回结果  
        // DeleteResult deleteResult = collection.deleteMany(gte("i", 100));  
        // // 输出删除的行数  
        // System.out.println(deleteResult.getDeletedCount());  
        // // 获取全部文档,所有i>=100的数据都没了  
        // for (Document cur : collection.find()) {  
        // System.out.println(cur.toJson());  
        // }  
        /*************************** 程序块,一次执行多条语句 ********************************/  
        // 按照语句先后顺序执行  
        // collection.bulkWrite(Arrays.asList(new InsertOneModel<>(new Document(  
        // "_id", 4)), new InsertOneModel<>(new Document("_id", 5)),  
        // new InsertOneModel<>(new Document("_id", 6)),  
        // new UpdateOneModel<>(new Document("_id", 1), new Document(  
        // "$set", new Document("x", 2))), new DeleteOneModel<>(  
        // new Document("_id", 2)),  
        // new ReplaceOneModel<>(new Document("_id", 3), new Document(  
        // "_id", 3).append("x", 4))));  
        // // 获取全部文档  
        // for (Document cur : collection.find()) {  
        // System.out.println(cur.toJson());  
        // }  

        // 不按照语句先后顺序执行  
        // collection.bulkWrite(Arrays.asList(new InsertOneModel<>(new Document(  
        // "_id", 4)), new InsertOneModel<>(new Document("_id", 5)),  
        // new InsertOneModel<>(new Document("_id", 6)),  
        // new UpdateOneModel<>(new Document("_id", 1), new Document(  
        // "$set", new Document("x", 2))), new DeleteOneModel<>(  
        // new Document("_id", 2)),  
        // new ReplaceOneModel<>(new Document("_id", 3), new Document(  
        // "_id", 3).append("x", 4))), new BulkWriteOptions()  
        // .ordered(false));  
        // 获取全部文档  
        // for (Document cur : collection.find()) {  
        // System.out.println(cur.toJson());  
        // }  


        // 关闭数据库连接  
        mongoClient.close();  

}  

3. 实现JSONS数据的插入Mongodb3.0以上版本需要进行格式转换
如下
//JSON转换成DBObject
        DBObject dbobj =(DBObject)JSON.parse(<JSON字符串>);
        Document doc = new Document(dbobj.toMap());
//上传数据
collection.insertOne(doc)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值