您的位置:首页 > 数据库 > Mongodb

java 操作mongodb的增删查改 crud

2015-12-17 11:48 661 查看
首先需要搭建mongodb的服务,这个先略过吧~~

需要导入两个jar包mongo-java-driver-2.10.1.jar , gson-2.3.1.jar

以下是用来测试,mongodbdb是否能连接得上

package com.zwy.mongo;

import java.net.UnknownHostException;

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;

public class MongoDB {
public static void main(String[] args) throws UnknownHostException {
//连接mogodb服务器
Mongo mg = new Mongo("192.168.23.128", 27017);
//获取所有数据库
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("books");

// 查询所有的数据
DBCursor cur = users.find();
while (cur.hasNext()) {
DBObject obj  = cur.next();
System.out.println(obj);
System.out.println(obj.get("pages"));
}
System.out.println(cur.count());
System.out.println(cur.getCursorId());
//System.out.println(JSON.serialize(cur));
}
}


mongodb的增删查改,以及group 操作

package com.zwy.mongo;

import java.net.UnknownHostException;
import java.util.ArrayList;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.GroupCommand;
import com.mongodb.Mongo;
/*修改自己的服务器ip*/
public class MongoDBCRUD {
public static Mongo mg ;
public static DB db ;
public static void init(){
//连接mogodb服务器
try {
mg = new Mongo("192.168.23.128", 27017);
db = mg.getDB("zwy");
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
/*insert into person (name,age) values ('zwy*',1)*/
public static void insert() {
DBCollection table = db.getCollection("person");
for(int i = 0 ; i < 10000 ; i++) {
DBObject obj = new BasicDBObject();
obj.put("name", "zwy" + i);
obj.put("age", Math.floor(Math.random() * i  )%50);
obj.put("sex", i % 2);
table.insert(obj);
}

}
/*select * from person where name = 'zwy100'*/
public static void query() {
DBObject obj = new BasicDBObject();
obj.put("name", "zwy100");
DBCollection table = db.getCollection("person");
DBCursor cursor = table.find(obj);

while(cursor.hasNext()) {
System.out.println(cursor.next());
}
/*select name from person where name = 'zwy100'*/
cursor =  table.find(obj,new BasicDBObject().append("name", 1));
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
}
/*delete from person where name = 'zwy100'*/
public static void delete() {
DBCollection table = db.getCollection("person");
DBObject query = new BasicDBObject();
query.put("name", "zwy100" );
table.findAndRemove(query);
}
/*等价于update person set age=666 where name = 'zwy100'*/
public static void update() {
DBObject obj = new BasicDBObject();
obj.put("name", "zwy100");
DBObject obj2 = new BasicDBObject();

obj2.put("$set", new BasicDBObject().append("age",666));
DBCollection table = db.getCollection("person");
DBObject rs = table.findOne(obj);
System.out.println(rs);
System.out.println(obj2);
System.out.println(table.update(rs,obj2).getN());
//table.update(rs,obj2);
}
public static void destroy(){
//连接mogodb服务器
if(null != mg) {
mg.close();
}
}

/*
* key:grouby 的关键字
* initial :初始化话函数,所有age相同的组别,执行reduce之前要先调用的函数
* reduce:对所有age相同的记录要执行的reduce函数
* finalize:执行完所有的reduce函数之后要调用的函数
* condition:输出的判断条件
db.person.group({
key:{age:true},
initial:{"person":[]},
$reduce:function(cur, prev) {
prev.person.push(cur.name);
},
finalize:function(out) {
out.size =  out.person.length;
},
condition:{age:{$gt:20}}
})
* */
public static void group() {
DBCollection table = db.getCollection("person");
DBObject keys = new BasicDBObject().append("age", "true");
DBObject initial = new BasicDBObject().append("person", new ArrayList());;
String reduce =
"function(cur, prev) {"
+ "if( prev.person.length < 3)"
+  "prev.person.push(cur.name);"
+"}";
String finalize =" function(out) { "
+" out.size =  out.person.length;"
+ "}; ";
DBObject cond = new BasicDBObject().append("age",new BasicDBObject().append("$gt",20));
DBObject list = table.group(keys,cond ,initial,reduce,finalize);
System.out.println(list);
}
public static void main(String[] args) throws UnknownHostException {
init();
//insert();
//query();
group();
//update();
//delete();
destroy();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: