Java操作MongoDB之CRUD(增删改查)
2013-09-27 20:38
726 查看
上一篇文章:MongoDB入门学习
http://blog.csdn.net/rjfxd/article/details/12108909
一、准备工作
1、建立maven项目,添加所需依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.3</version>
</dependency>
当然也可以建立java project,下载mongoDB对Java支持的驱动包,然后拷贝jar文件到lib下
2、开启mongo服务,建立测试类进行测试
二、完整源码如下:
参考:
http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html
http://blog.csdn.net/rjfxd/article/details/12108909
一、准备工作
1、建立maven项目,添加所需依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.3</version>
</dependency>
当然也可以建立java project,下载mongoDB对Java支持的驱动包,然后拷贝jar文件到lib下
2、开启mongo服务,建立测试类进行测试
二、完整源码如下:
package com.shxt.mongo; 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.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoClient; import com.mongodb.util.JSON; /** * MongDB之CRUD * @author 范晓东 * @ClassName: TestMongo * @Version 1.0 * @ModifiedBy * @Copyright shxt * @date 2013-9-27 下午08:21:49 * @description */ public class TestMongo { private Mongo mg = null; private DB db; private DBCollection users; @Before public void setUp() throws UnknownHostException { // 创建一个MongoDB的数据库连接对象 mg=new MongoClient("localhost", 27017); //验证模式登录(如果不设置验证模块,可直接登录) //想要登录验证模块生效,需在命令行下输入1->mongo 2->use admin 3->db.addUser("root","root123"); 4->db.auth("root","root123"); DB admin=mg.getDB("admin"); boolean bool =admin.authenticate("root", "root123".toCharArray()); if (bool){ //login success //获得一个test的数据库,如果该数据库不存在,会自动创建 db=mg.getDB("test"); } // 获取一个聚集集合DBCollection,相当于我们的数据库表 users = db.getCollection("users"); } @Test public void testQuery() { //查询所有的数据库 for (String name : mg.getDatabaseNames()) { System.out.println("dbName: " + name); } //查询所有的聚集集合 for (String name : db.getCollectionNames()) { System.out.println("collectionName: " + name); } //查询所有的数据 DBCursor cur = users.find(); while (cur.hasNext()) { System.out.println(cur.next()); } //其它 System.out.println(cur.count()); System.out.println(users.count()); System.out.println(cur.getCursorId()); System.out.println(JSON.serialize(cur));//JSON对象转换 } @Test public void testQuery2(){ //根据id查询 List<DBObject> list=users.find(new BasicDBObject("_id", new ObjectId("5243871a0609f38c8a7a5ccd"))).toArray(); System.out.println(list.get(0).get("name")); //根据age查询,从第一条开始取,取3条数据 BasicDBObject user = new BasicDBObject(); user.put("age", new BasicDBObject("$gte", 20)); DBCursor cur=users.find(user).skip(0).limit(3); System.out.println(cur.count()); while (cur.hasNext()) { System.out.println(cur.next()); } //查询age!=25 //users.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray(); //查询age in 25/26/27 //users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[] { 25, 26, 27 }))).toArray(); //查询age not in 25/26/27 //users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[] { 25, 26, 27 }))).toArray(); //查询存在age的数据 //users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.EXISTS, true))).toArray(); //只查询age属性 //users.find(null, new BasicDBObject("age", true)).toArray(); //只查询一条数据,多条取第一条 //users.findOne(); //users.findOne(new BasicDBObject("age", 26)); //users.findOne(new BasicDBObject("age", 26), new BasicDBObject("name", true)); //查询age=25的数据并删除 //users.findAndRemove(new BasicDBObject("age", 25)); //查询age=26的数据,并且修改name的值为abc //users.findAndModify(new BasicDBObject("age", 26), new BasicDBObject("name", "abc")); } @Test public void testAdd() { DBObject user = new BasicDBObject(); user.put("name", "fxd"); user.put("age", 21); user.put("sex", "男"); users.save(user); //查看是否添加成功 DBCursor cur = users.find(); while (cur.hasNext()) { System.out.println(cur.next()); } } @Test public void testAdd2() { DBObject user1 = new BasicDBObject("name","张三"); DBObject user2 = new BasicDBObject("age",20); users.insert(user1,user2); //查看是否添加成功 DBCursor cur = users.find(); while (cur.hasNext()) { System.out.println(cur.next()); } } @Test public void testAdd3() { DBObject user1 = new BasicDBObject("name","张三"); DBObject user2 = new BasicDBObject("age",20); List<DBObject> list = new ArrayList<DBObject>(); list.add(user1); list.add(user2); users.insert(list); //查看是否添加成功 DBCursor cur = users.find(); while (cur.hasNext()) { System.out.println(cur.next()); } } @Test public void testRemove(){ users.remove(new BasicDBObject("_id", new ObjectId("524378680609ad5717421c6a"))); //users.remove(new BasicDBObject("age", new BasicDBObject("$gte", 24))); } @Test public void update(){ //=update users set age=17 where name='fxd'; users.update( new BasicDBObject("name","fxd"),//new BasicDBObject().append("name","fxd"), new BasicDBObject("$set" ,new BasicDBObject("age",17)), false,//如果users中不存在age字段,是否更新,false表示不更新 false//只修改第一条,true表示修改多条 ); } @Test public void update2(){ //批量修改,也可以用users.update(),把第四个参数改为true即可 //=update users set age=age+10 where name='fxd'; users.updateMulti( new BasicDBObject().append("name","fxd"), new BasicDBObject("$inc",new BasicDBObject("age", 10)) ); } @After public void tearDown() { if (mg != null) { if (db != null) { // 结束Mongo数据库的事务请求 try { db.requestDone(); } catch (Exception e) { e.printStackTrace(); } } try { mg.close(); } catch (Exception e) { e.printStackTrace(); } mg = null; db = null; } } }
参考:
http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html
相关文章推荐
- MongoDB入门学习
- MongoDB命令行操作
- MongoDB命令行操作(上)
- MongoDB基本使用
- win7下安装mongodb
- mongodb使用笔记
- windows下mongodb安装
- [转载]mongoDB 使用手册
- mongodb 学习初探
- C#代码 利用MongoDB中Group聚合函数查询
- MongoDB MapReduce(转)
- mongodb的C的API使用
- mongodb基础系列——mongodb服务器无法启动
- MongoDB的备份与恢复
- MongoDB常用操作
- MongoDB设置访问权限、设置用户(转)
- MongoDB Windows 下安装部署(转)
- java操作mongodb
- java操作mongodb
- MongoDB Windows 下安装部署