- 浏览: 5162877 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
转自:http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html
1、 建立SimpleTest.java,完成简单的mongoDB数据库操作
Mongo mongo = new Mongo();
这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。
DB db = mongo.getDB(“test”);
这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。
得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。
DBCollection users = db.getCollection("users");
这样就获得了一个DBCollection,它相当于我们数据库的“表”。
查询所有数据
DBCursor cur = users.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
完整源码
2、 完成CRUD操作,首先建立一个MongoDB4CRUDTest.java,基本测试代码如下:
3、 添加操作
在添加操作之前,我们需要写个查询方法,来查询所有的数据。代码如下:
4、 删除数据
5、 修改数据
6、 查询数据
mongoDB不支持联合查询、子查询,这需要我们自己在程序中完成。将查询的结果集在Java查询中进行需要的过滤即可。
7、 其他操作
好了,这里基本上就介绍这么多Java操作MongoDB的方法。其他的东西还需要你自己多多研究。上面操作MongoDB的方法都是一些常用的方法,比较简单。
转自:http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html
1、 建立SimpleTest.java,完成简单的mongoDB数据库操作
Mongo mongo = new Mongo();
这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。
DB db = mongo.getDB(“test”);
这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。
得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。
DBCollection users = db.getCollection("users");
这样就获得了一个DBCollection,它相当于我们数据库的“表”。
查询所有数据
DBCursor cur = users.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
完整源码
package com.hoo.test; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; import com.mongodb.util.JSON; /** * <b>function:</b>MongoDB 简单示例 * @author hoojo * @createDate 2011-5-24 下午02:42:29 * @file SimpleTest.java * @package com.hoo.test * @project MongoDB * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class SimpleTest { public static void main(String[] args) throws UnknownHostException, MongoException { Mongo mg = new Mongo(); //查询所有的Database for (String name : mg.getDatabaseNames()) { System.out.println("dbName: " + name); } DB db = mg.getDB("test"); //查询所有的聚集集合 for (String name : db.getCollectionNames()) { System.out.println("collectionName: " + name); } DBCollection users = db.getCollection("users"); //查询所有的数据 DBCursor cur = users.find(); while (cur.hasNext()) { System.out.println(cur.next()); } System.out.println(cur.count()); System.out.println(cur.getCursorId()); System.out.println(JSON.serialize(cur)); } }
2、 完成CRUD操作,首先建立一个MongoDB4CRUDTest.java,基本测试代码如下:
package com.hoo.test; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import org.bson.types.ObjectId; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.mongodb.BasicDBObject; import com.mongodb.Bytes; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoException; import com.mongodb.QueryOperators; import com.mongodb.util.JSON; /** * <b>function:</b>实现MongoDB的CRUD操作 * @author hoojo * @createDate 2011-6-2 下午03:21:23 * @file MongoDB4CRUDTest.java * @package com.hoo.test * @project MongoDB * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class MongoDB4CRUDTest { private Mongo mg = null; private DB db; private DBCollection users; @Before public void init() { try { mg = new Mongo(); //mg = new Mongo("localhost", 27017); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } //获取temp DB;如果默认没有创建,mongodb会自动创建 db = mg.getDB("temp"); //获取users DBCollection;如果默认没有创建,mongodb会自动创建 users = db.getCollection("users"); } @After public void destory() { if (mg != null) mg.close(); mg = null; db = null; users = null; System.gc(); } public void print(Object o) { System.out.println(o); } }
3、 添加操作
在添加操作之前,我们需要写个查询方法,来查询所有的数据。代码如下:
/** * <b>function:</b> 查询所有数据 * @author hoojo * @createDate 2011-6-2 下午03:22:40 */ private void queryAll() { print("查询users的所有数据:"); //db游标 DBCursor cur = users.find(); while (cur.hasNext()) { print(cur.next()); } } @Test public void add() { //先查询所有数据 queryAll(); print("count: " + users.count()); DBObject user = new BasicDBObject(); user.put("name", "hoojo"); user.put("age", 24); //users.save(user)保存,getN()获取影响行数 //print(users.save(user).getN()); //扩展字段,随意添加字段,不影响现有数据 user.put("sex", "男"); print(users.save(user).getN()); //添加多条数据,传递Array对象 print(users.insert(user, new BasicDBObject("name", "tom")).getN()); //添加List集合 List<DBObject> list = new ArrayList<DBObject>(); list.add(user); DBObject user2 = new BasicDBObject("name", "lucy"); user.put("age", 22); list.add(user2); //添加List集合 print(users.insert(list).getN()); //查询下数据,看看是否添加成功 print("count: " + users.count()); queryAll(); }
4、 删除数据
@Test public void remove() { queryAll(); print("删除id = 4de73f7acd812d61b4626a77:" + users.remove(new BasicDBObject("_id", new ObjectId("4de73f7acd812d61b4626a77"))).getN()); print("remove age >= 24: " + users.remove(new BasicDBObject("age", new BasicDBObject("$gte", 24))).getN()); }
5、 修改数据
@Test public void modify() { print("修改:" + users.update(new BasicDBObject("_id", new ObjectId("4dde25d06be7c53ffbd70906")), new BasicDBObject("age", 99)).getN()); print("修改:" + users.update( new BasicDBObject("_id", new ObjectId("4dde2b06feb038463ff09042")), new BasicDBObject("age", 121), true,//如果数据库不存在,是否添加 false//多条修改 ).getN()); print("修改:" + users.update( new BasicDBObject("name", "haha"), new BasicDBObject("name", "dingding"), true,//如果数据库不存在,是否添加 true//false只修改第一天,true如果有多条就不修改 ).getN()); //当数据库不存在就不修改、不添加数据,当多条数据就不修改 //print("修改多条:" + coll.updateMulti(new BasicDBObject("_id", new ObjectId("4dde23616be7c19df07db42c")), new BasicDBObject("name", "199"))); }
6、 查询数据
@Test public void query() { //查询所有 //queryAll(); //查询id = 4de73f7acd812d61b4626a77 print("find id = 4de73f7acd812d61b4626a77: " + users.find(new BasicDBObject("_id", new ObjectId("4de73f7acd812d61b4626a77"))).toArray()); //查询age = 24 print("find age = 24: " + users.find(new BasicDBObject("age", 24)).toArray()); //查询age >= 24 print("find age >= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$gte", 24))).toArray()); print("find age <= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$lte", 24))).toArray()); print("查询age!=25:" + users.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray()); print("查询age in 25/26/27:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[] { 25, 26, 27 }))).toArray()); print("查询age not in 25/26/27:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[] { 25, 26, 27 }))).toArray()); print("查询age exists 排序:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.EXISTS, true))).toArray()); print("只查询age属性:" + users.find(null, new BasicDBObject("age", true)).toArray()); print("只查属性:" + users.find(null, new BasicDBObject("age", true), 0, 2).toArray()); print("只查属性:" + users.find(null, new BasicDBObject("age", true), 0, 2, Bytes.QUERYOPTION_NOTIMEOUT).toArray()); //只查询一条数据,多条去第一条 print("findOne: " + users.findOne()); print("findOne: " + users.findOne(new BasicDBObject("age", 26))); print("findOne: " + users.findOne(new BasicDBObject("age", 26), new BasicDBObject("name", true))); //查询修改、删除 print("findAndRemove 查询age=25的数据,并且删除: " + users.findAndRemove(new BasicDBObject("age", 25))); //查询age=26的数据,并且修改name的值为Abc print("findAndModify: " + users.findAndModify(new BasicDBObject("age", 26), new BasicDBObject("name", "Abc"))); print("findAndModify: " + users.findAndModify( new BasicDBObject("age", 28), //查询age=28的数据 new BasicDBObject("name", true), //查询name属性 new BasicDBObject("age", true), //按照age排序 false, //是否删除,true表示删除 new BasicDBObject("name", "Abc"), //修改的值,将name修改成Abc true, true)); queryAll(); }
mongoDB不支持联合查询、子查询,这需要我们自己在程序中完成。将查询的结果集在Java查询中进行需要的过滤即可。
7、 其他操作
public void testOthers() { DBObject user = new BasicDBObject(); user.put("name", "hoojo"); user.put("age", 24); //JSON 对象转换 print("serialize: " + JSON.serialize(user)); //反序列化 print("parse: " + JSON.parse("{ \"name\" : \"hoojo\" , \"age\" : 24}")); print("判断temp Collection是否存在: " + db.collectionExists("temp")); //如果不存在就创建 if (!db.collectionExists("temp")) { DBObject options = new BasicDBObject(); options.put("size", 20); options.put("capped", 20); options.put("max", 20); print(db.createCollection("account", options)); } //设置db为只读 db.setReadOnly(true); //只读不能写入数据 db.getCollection("test").save(user); }
好了,这里基本上就介绍这么多Java操作MongoDB的方法。其他的东西还需要你自己多多研究。上面操作MongoDB的方法都是一些常用的方法,比较简单。
转自:http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html
发表评论
-
gradle编译错误:Could not find method compile() for arguments
2020-09-19 10:50 18530编译(IDEA+Gradle)一个别人的工程,出现一个 ... -
netty心跳检查之UDP篇
2019-09-15 08:50 2406部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终 ... -
解决tomcat部署两个SpringBoot应用提示InstanceAlreadyExistsException
2019-06-30 11:49 3403两个SpringBoot应用部署在一个Tomcat中,单独 ... -
Eclipse配置MyBatis代码自动化功能
2019-06-29 10:16 17811.安装插件 Eclipse中,Help->Ecli ... -
vue.js中使用qrcode生成二维码
2019-05-20 00:00 7660一、安装包 npm install qrcodejs2 --s ... -
MySQL插入数据报错: Incorrect string value: '\xFD\xDE'
2019-03-31 23:19 1260我MySQL数据库用的uft-8字符集,插入数据一直很正常 ... -
vue自定义组件并双向绑定属性
2019-03-08 22:46 3261做了两个子组件,原理基本一样,一个是使用原生的select ... -
vue-router简单示例
2019-03-05 00:32 1158写个基本完整、稍有借鉴意义的示例,防止自己忘记。 &l ... -
“联通充值系统繁忙”轻松应对
2019-02-06 11:03 3976大过年的,联通充个值一直报“充值系统繁忙”。昨天晚上试了几 ... -
electron.js数据库应用---导航菜单(element-ui+mysql)
2019-02-05 21:33 2366一、环境搭建 略, ... -
electron.js数据库应用---入门(mysql+element-ui)
2019-01-27 23:19 7505我的机器:Windows10,64 ... -
SpringMVC 在controller层中注入成员变量request,是否线程安全
2018-12-17 21:17 2752@RestController public class ... -
VueJS 组件参数名命名与组件属性转化
2018-12-03 00:00 2078转自:https://www.cnblogs.com/meiy ... -
vue-resource拦截器实现token发送及检验自动化
2018-11-16 22:38 3080用了很长时间vue-resource,最近思考$http发 ... -
element-ui试用手记
2018-10-29 20:25 1751element-ui、iviewui都以vue.js为基础 ... -
iviewui中表格控件中render的使用示例
2018-07-07 16:46 9791示例了如何在表格中显示按钮,如何将代码转化为文字。 i ... -
Tomcat错误“Alias name tomcat does not identify a key entry”解决
2018-07-05 21:39 6583申请到了阿里云的证书后,下载、按照说明生成jks格式证书、 ... -
阿里云免费证书“fileauth.txt内容配置错误”解决
2018-07-05 20:43 5306最近研究微信小程序开发,上阿里云申请了个证书,使用文件验证 ... -
springboot2.0跨域配置
2018-07-04 22:11 5288springboot2.0跨域配置: 一、代码 ... -
微信小程序使用code换openid的方法(JAVA、SpringBoot)
2018-07-01 21:52 10401微信小程序序的代码中提示,使用code换取openid,但 ...
相关推荐
将一系列图片文件存储到MongoDB中 java操作mongodb存储文件
【Java 操作 MongoDB 知识点详解】 MongoDB 是一个流行的开源、分布式文档数据库系统,以其灵活性、高性能和高可用性而受到欢迎。在 Java 开发环境中,可以通过 MongoDB 的 Java 驱动程序来实现对 MongoDB 数据库的...
以上就是Java操作MongoDB的基本步骤。这个“mongodb_helloworld”项目应该包含示例代码,帮助初学者快速上手。记得在实际应用中,你需要处理异常并适当地关闭MongoClient,以避免资源泄漏: ```java mongoClient....
在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...
Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...
Java操作MongoDB是一种常见的数据交互方式,特别是在Java后端开发中。MongoDB是一个NoSQL数据库,以其灵活性、高性能和易扩展性而受到欢迎。在Java中,我们可以使用MongoDB的Java驱动程序来与MongoDB进行通信。以下...
以上就是使用Java操作MongoDB的基本步骤。在实际项目中,你可能需要处理更复杂的查询和事务,以及错误处理和连接池管理等高级话题。学习更多关于MongoDB的官方文档和社区资源,如CSDN博客...
Java操作MongoDB实例,压缩包内为完整项目源码,使用MyEclipse软件 见文:https://blog.csdn.net/qq_33427869/article/details/87270444
对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与MongoDB交互,实现文件的上传、下载、预览以及打包下载等功能。 首先,我们需要在Java项目中引入MongoDB的驱动库,通常是...
这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...
java操作mongodb的工具类,增删查改方法
在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。Spring框架则是一个强大的Java企业级...
以上就是使用Java操作MongoDB的基本步骤。在实际应用中,你可能需要处理更复杂的查询和更新,以及错误处理、连接管理等。MongoDB提供了丰富的查询表达式,如`$gt`, `$lt`, `$in`, `$exists`等,以及聚合框架和地理...
Java操作MongoDB是一种常见的数据交互方式,特别是在大数据和分布式系统中。MongoDB是一个高性能、开源、无模式的文档型数据库,而Java作为广泛使用的编程语言,提供了丰富的库和API来与MongoDB进行交互。本Demo提供...
为了更深入地了解如何使用Java操作MongoDB,你需要学习以下知识点: 1. **MongoDB Java驱动程序**:了解如何添加驱动程序依赖,以及如何创建`MongoClient`实例来连接到MongoDB服务器。 2. **数据模型**:理解...
### JAVA操作MongoDB知识点详解 #### 1. Java操作MongoDB简介 MongoDB是一种面向文档的NoSQL数据库,它提供了灵活的文档模型和高性能的读写操作,非常适合处理大量的数据和快速迭代的开发环境。而Java是一种广泛...
Java 操作 MongoDB 是一个常见的需求,特别是在开发基于 Java 的应用程序时需要存储和检索非结构化数据。本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要...