mongodb初学-java操作mongodb

来源:互联网 发布:软通动力java工资 编辑:程序博客网 时间:2024/04/28 22:22

下载java操作mongodb的jar包:点击打开链接

demo如下:

<span style="font-size:18px;">package dfb.com;import org.bson.types.ObjectId;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.MongoClient;import com.mongodb.QueryOperators;import com.mongodb.WriteResult;public class MongodbTest {public static void main(String[] args) throws Exception {/*String host ="xx.xx.xx.xx";int port = 27017;String dbname = "xx";String username ="xx";char[] password = "xx".toCharArray();*/String host ="127.0.0.1";//数据库主机int port = 27017;//数据库端口String dbname = "myFirstDb";//数据库名称MongoClient mongoClient = new MongoClient(host, port);DB db = mongoClient.getDB(dbname);//获取数据库/*CommandResult cr = db.authenticateCommand(username, password);//使用密码链接数据库System.out.println(cr.ok());*///通过collection名称获取user的聚合DBCollection users = db.getCollection("dong");//获取名称为dong的collection(类似关系型数据库的table)long count = users.getCount();//获取collection的数据总数(类似table的数据记录条数)System.out.println("users的数据量"+count);DBCursor usersVal = users.find();//获取所有的collection数据(类似table的数据记录)//添加DBObject usejo = new BasicDBObject();usejo.put("name", "midWinter");usejo.put("age", "18");WriteResult save = users.save(usejo);//向collection中保存数据long countNew = users.getCount();System.out.println(save);System.out.println(save.toString());System.out.println("users的类型"+users);System.out.println("users的new数据量"+countNew);//更新BasicDBObject orgEdit = new BasicDBObject("id", new ObjectId("4dde25d06be7c53ffbd70906"));//被修改记录BasicDBObject newEdit = new BasicDBObject("age", 27);//修改age=27users.update(orgEdit, newEdit,true,//如果数据库不存在,添加false不添加false//false只修改第一条,true如果有多条就修改);//删除users.remove(new BasicDBObject("id", new ObjectId("4dde25d06be7c53ffbd70906")));//查询    //查询id = 4de73f7acd812d61b4626a77    System.out.println("find id = 4de73f7acd812d61b4626a77: " + users.find(new BasicDBObject("_id", new ObjectId("4de73f7acd812d61b4626a77"))).toArray());    //查询age = 24    System.out.println("find age = 24: " + users.find(new BasicDBObject("age", 24)).toArray());    //查询age >= 24    System.out.println("find age >= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$gte", 24))).toArray());    System.out.println("find age <= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$lte", 24))).toArray());     System.out.println("查询age!=25:" + users.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray());    System.out.println("查询age in 25/26/27:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[] { 25, 26, 27 }))).toArray());    System.out.println("查询age not in 25/26/27:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[] { 25, 26, 27 }))).toArray());    System.out.println("查询age exists 排序:" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.EXISTS, true))).toArray());    System.out.println("只查询age属性:" + users.find(null, new BasicDBObject("age", true)).toArray());    System.out.println("只查属性:" + users.find(null, new BasicDBObject("age", true), 0, 2).toArray());    System.out.println("只查属性:" + users.find(null, new BasicDBObject("age", true), 0, 2, Bytes.QUERYOPTION_NOTIMEOUT).toArray());    //只查询一条数据,多条去第一条    System.out.println("findOne: " + users.findOne());    System.out.println("findOne: " + users.findOne(new BasicDBObject("age", 26)));    System.out.println("findOne: " + users.findOne(new BasicDBObject("age", 26), new BasicDBObject("name", true)));     //查询修改、删除    System.out.println("findAndRemove 查询age=25的数据,并且删除: " + users.findAndRemove(new BasicDBObject("age", 25)));    //查询age=26的数据,并且修改name的值为Abc    System.out.println("findAndModify: " + users.findAndModify(new BasicDBObject("age", 26), new BasicDBObject("name", "Abc")));    System.out.println("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));/*获取所有的collection名称(类似关系行数据库的所有table名称) * Set<String> collectionNames = db.getCollectionNames();for(String collName:collectionNames){System.out.println(collName);}*///new Document}}</span>



0 0