MongoDB_Java操作实例
来源:互联网 发布:tensorflow翻译 编辑:程序博客网 时间:2024/06/05 10:42
public class MyMongo{ private void test() { // 1.获取连接:MongoClient MongoCredential credential = MongoCredential.createCredential("user","database","password".toCharArray()); //(user,database,password) MongoClient mongoClient = new MongoClient(new ServerAddress("192.168.6.186", 27017), Arrays.asList(credential)); // 2.获取数据库:MongoDatabase MongoDatabase database = mongoClient.getDatabase("mydb"); //3. 进入某个文档集:MongoCollection MongoCollection<Document> collection = database.getCollection("test"); //4.插入数据:insertOne(),insertMany() 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); //5.读取数据 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()); } //③ 根据条件获取某部分文档 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为递增 Document myDoc = collection.find(exists("i")) .sort(new BasicDBObject("i", -1)).first(); System.out.println(myDoc.toJson()); // 选择性输出结果中的元素,0为不显示,1为显示 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()); //6.修改数据库中的数据 // $inc 对指定的元素加 // $mul 乘 // $rename 修改元素名称 // $setOnInsert 如果以前没有这个元素则增加这个元素,否则不作任何更改 // $set 修改指定元素的值 // $unset 移除特定的元素 // $min 如果原始数据更大则不修改,否则修改为指定的值 // $max 与$min相反 // $currentDate 修改为目前的时间 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()); } //7.删除数据 // 删除第一个符合条件的数据 collection.deleteOne(eq("i", 110)); //获取全部文档,可以看到没有110这个数了 // 删除所有符合条件的数据,并且返回结果 DeleteResult deleteResult = collection.deleteMany(gte("i", 100)); // 输出删除的行数 System.out.println(deleteResult.getDeletedCount()); //获取全部文档,所有i>=100的数据都没了 //8. 程序块,一次执行多条语句 // 按照语句先后顺序执行 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)))); // 不按照语句先后顺序执行 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)); // 关闭数据库连接 mongoClient.close(); } public static void main(String[] args) { MyMongo mymongo= new MyMongo(); mymongo.test(); } }
阅读全文
0 0
- MongoDB_Java操作实例
- mongodb_java增删改查
- 4.mongoDB_java连接
- MongoDB_Java连接Mongo 限制结果集数量
- MongoDB_Java连接Mongo 限制字段返回数
- MongoDB_Java连接mongo 将结果集分页
- MongoDB_Java连接MongoDB数据库 Mongo / MongoClient 的使用
- MongoDB_Java连接mongo 在集合中插入文档
- MongoDB_Java连接mongo 使用Java从集合中删除文档
- MongoDB_Java连接mongo 使用Java程序更新集合中的文档
- MongoDB_Java连接mongo 全量查询mongo中的数据
- MongoDB_Java连接mongo 使用Java多条件查询mongo数据
- VI操作实例
- 注册表操作实例
- Hibernate操作视图实例
- java日期操作实例
- java File操作实例
- VC 时间操作实例
- JAVA实现MATLAB中repmat函数
- ubuntu下python安装第三方模块
- 邻接矩阵实现深度优先搜索,广度优先搜索
- U-Mail邮件系统详解邮件收发延迟原因及解决方案
- 试试Linux下的ip命令,ifconfig已经过时了
- MongoDB_Java操作实例
- 旅游预算 动态规划
- java练习题9
- ssm
- mysql学习 stage1-5
- VC2015 QT5中文乱码问题解决
- 功率放大电路
- fiddler- 手机端抓包
- VUE中子组件向父组件传递事件