当前位置: 首页 > Web前端 > JavaScript

【MongoDBforJava】Java操作MongoDB

时间:2023-03-27 02:14:29 JavaScript

1.接下来创建一个JavaProject工程,导入下载好的驱动包。可以在Java中使用mongoDB,目录如下:2.Java运行MongoDB实例在本实例之前,需要先启动mongod.exe服务。启动后,可以顺利执行以下程序;1、创建SimpleTest.java,完成简单的MongoDB数据库操作mongomongo=newMongo();这里创建了一个MongoDB数据库连接对象,默认连接到当前机器的localhost地址,端口为27017。DBdb=mongo.getDB("test");这样就得到了一个测试数据库。如果这个数据库不是在mongoDB中创建的,也可以正常运行。如果你知道,mongoDB可以在不创建这个数据库的情况下完成数据的添加操作。添加时,如果没有这个库,mongoDB会自动创建当前数据库。拿到db之后,接下来就是得到一个“聚合集合DBCollection”,这是通过db对象的getCollection方法完成的。DBCollection用户=db.getCollection("用户");这样就得到了一个DBCollection,相当于我们数据库的“表”。查询所有数据DBCursorcur=users.find();while(cur.hasNext()){undefinedSystem.out.println(cur.next());}完整源码包com.hoo.test;importjava.net.UnknownHostException;importcom.mongodb.DB;importcom.mongodb.DBCollection;导入com.mongodb.DBCursor;导入com.mongodb.Mongo;导入com.mongodb.MongoException;导入com.mongodb.util.JSON;/**函数:MongoDB简单示例@authorhoojo@createDate2011-5-2402:42:29PM@fileSimpleTest.java@packagecom.hoo.test@projectMongoDB@bloghttp://blog.csdn.net/IBM_hoojo@emailhoojo_@126.com@version1.0*/publicclassSimpleTest{publicstaticvoidmain(String[]args)throwsUnknownHostException,MongoException{Mongomg=newMongo();//查询所有数据库for(Stringname:mg.getDatabaseNames()){System.out.println("dbName:"+name);}DBdb=mg.getDB("测试");//查询所有集合for(Stringname:db.getCollectionNames()){System.out.println("collectionName:"+name);}DBCollection用户=db.getCollection("用户");//查询所有数据DBCursorcur=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,基本测试代码如下:packagecom.hoo.test;importjava.net.UnknownHostException;导入java.util.ArrayList;导入java.util.List;导入org.bson.types.ObjectId;导入org.junit.After;导入org.junit.Before;导入org.junit.Test;导入com。mongodb.BasicDBObject;导入com.mongodb.Bytes;导入com.mongodb.DB;导入com.mongodb.DBCollection;导入com。mongodb.DBCursor;importcom.mongodb.DBObject;importcom.mongodb.Mongo;importcom.mongodb.MongoException;importcom.mongodb.QueryOperators;importcom.mongodb.util.JSON;/**功能:实现MongoDB的CRUD操作@authorhoojo@createDate2011-6-203:21:23PM@fileMongoDB4CRUDTest.java@packagecom.hoo.test@projectMongoDB@bloghttp://blog.csdn.net/IBM_hoojo@emailhoojo_@126.com@version1.0*/publicclassMongoDB4CRUDTest{privateMongomg=null;privateDBdb;privateDBCollectionusers;@Beforepublicvoidinit(){try{mg=newMongo();//mg=newMongo("localhost",27017);}catch(UnknownHostExceptione){e.printStackTrace();}catch(MongoExceptione){e.printStackTrace();}//获取临时数据库;如果默认不创建,mongodb会自动创建db=mg.getDB("temp");//获取用户DBCollection;如果默认不创建,mongodb会自动创建users=db.getCollection("users");}@Afterpublicvoiddestroy(){if(mg!=null)mg.close();毫克=空;分贝=空;用户=空;System.gc();}publicvoidprint(Objecto){System.out.println(o);}}3.添加操作在添加操作之前,我们需要写一个查询方法来查询所有的数据代码如下:/**函数:查询所有数据@authorhoojo@createDate2011-6-203:22:40pm*/privatevoidqueryAll(){print("查询用户所有数据:");//dbCursorDBCursorcur=users.find();while(cur.hasNext()){print(cur.next());}}@Testpublicvoidadd(){//先查询所有数据queryAll();print("count:"+users.count());DBObjectuser=newBasicDBObject();user.put("name","hoojo");user.put("age",24);//用户。save(user)保存,getN()获取受影响的行数//print(users.save(user).getN());//扩展字段,随意添加字段,不影响已有数据user.put("sex","male");print(users.save(user).getN());//添加多条数据,传Array对象print(users.insert(user,newBasicDBObject("name","tom")).getN());//添加List集合Listlist=newArrayList();list.add(user);DBObjectuser2=newBasicDBObject("name","lucy");user.put("年龄",22);list.add(user2);//添加List集合print(users.insert(list).getN());//查询数据是否添加成功print("count:"+users.count();queryAll();}4.删除数据@Testpublicvoidremove(){queryAll();print("删除id=4de73f7acd812d61b4626a77:"+users.remove(newBasicDBObject("_id",newObjectId("4de73f7acd812d61b4626a77"))).getN());print("removeage>=24:"+users.remove(newBasicDBObject("age",newBasicDBObject("$gte",24))).getN());}5.修改数据@Testpublicvoidmodify(){print("修改:"+users.update(newBasicDBObject("_id",newObjectId("4dde25d06be7c53ffbd70906")),newBasicDBObject("age",99)).getN());print("修改:"+users.update(newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042")),newBasicDBObject("age",121),true,//如果数据库不存在,是否添加false//多次修改).getN());print("修改:"+users.update(newBasicDBObject("name","haha"),newBasicDBObject("name","dingding"),true,//如果数据库不存在,是否添加true//false只修改第一天,如果有多个则不修改).getN());//当数据库不存在数据时不修改或添加数据,有多条数据时不修改//print("修改多条:"+coll.updateMulti(newBasicDBObject("_id",newObjectId("4dde23616be7c19df07db42c")),newBasicDBObject("name","199")));}6.查询数据@Testpublicvoidquery(){//查询全部//queryAll();//查询id=4de73f7acd812d61b4626a77print("findid=4de73f7acd812d61b4626a77:"+users.find(newBasicDBObject("_id",newObjectId("4de73f7acd812d61b4626a77"))).toArray());//Queryage=24print("findage=24:"+users.find(newBasicDBObject("age",24)).toArray());//查询age>=24print("findage>=24:"+users.find(newBasicDBObject("age",newBasicDBObject("$gte",24))).toArray());print("findage<=24:"+users.find(newBasicDBObject("age",newBasicDBobjec吨("$lte"toArray());).toArray());}))).toArray());print("默认年龄存在于:"+users.find(newBasicDBObject("age",newBasicDBObject(QueryOperators.EXISTS,true))).toArray());"具体年龄设置:"+users.find(null,newBasicDBObject("age",true)).toArray());",true),0,2).toArray());print("娱乐:"+users.find(null,newBasicDBObject("age",true),0,2,Bytes.QUERYOPTION_NOTIMEOUT).toArray());//只查询一条数据,多条到第一条print("findOne:"+users.findOne());print("findOne:"+users.findOne(newBasicDBObject("age",26)));print("findOne:"+users.findOne(newBasicDBObject("age",26),newBasicDBObject("name",true)));//查询修改,删除print("findAndRemovequeryage=25data,anddelete:"+users.findAndRemove(newBasicDBObject("age",25)));//查询age=26的数据,修改name的值为Abcprint("findAndModify:"+users.findAndModify(newBasicDBObject("age",26),newBasicDBObject("name","Abc")));print("findAndModify:"+users.findAndModify(newBasicDBObject("age",28),//查询年龄=28的数据newBasicDBObject("name",true),//查询name属性newBasicDBObject("age",true),//按年龄排序false,//是否删除,true表示删除newBasicDBObject("name","Abc"),//修改值,将name改为Abctrue,true));queryAll();}mongoDB不支持联合查询,子查询,需要我们在程序中的Java查询中完成查询结果集所需的过滤。7.其他操作publicvoidtestOthers(){DBObjectuser=newBasicDBObject();user.put("name","hoojo");user.put("age",24);//JSON对象转换print("serialize:"+JSON.serialize(user));//反序列化print("parse:"+JSON.parse("{\"name\":\"hoojo\",\"age\":24}"));print("判断tempCollection是否存在:"+db.collectionExists("temp"));//如果不存在则创建if(!db.collectionExists("temp")){DBObjectoptions=新的BasicDBObject();options.put("大小",20);options.put("capped",20);options.put("最大值",20);打印(db.createCollection(“帐户”,选项));}//设置db为只读db.setReadOnly(true);//只读不能写数据db.getCollection("test").save(user);}好了,这里基本就这么多Java操作了MongoDB方法。其他的还是需要自己多多研究。以上操作MongoDB的方法是一些常用的方法,比较简单。有问题微我hua2021ei