|
import com.mongodb.AggregationOutput;
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MapReduceCommand;
import com.mongodb.MapReduceOutput;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.QueryBuilder;
import com.mongodb.WriteConcern;
public class MongoUtils {
//DBCursor cursor = coll.find(condition).addOption(Bytes.QUERYOPTION_NOTIMEOUT);//设置游标不要超时
/**
* 获取所有数据库实例
*/
public void testGetDBS() {
List dbnames = MongoInit.getMong().getDatabaseNames();
for (String dbname : dbnames) {
System.out.println("dbname:" + dbname);
}
}
/**
* 删除数据库
*/
public void dropDatabase(String dbname) {
MongoInit.getMong().dropDatabase(dbname);
}
/**
* 查询所有表名
*/
public void getAllCollections() {
Set colls = MongoInit.getDB().getCollectionNames();
for (String s : colls) {
System.out.println("Collections:"+s);
}
}
/**
* 删除一个表
*/
public void dropCollection(String collection) {
MongoInit.getColl(collection).drop();
}
/**
* 添加一条记录
*/
public void addData(String dbCollection,String dataID,String dataTime,String dataContent,String dataStatus) {
DBCollection coll = MongoInit.getColl(dbCollection);
BasicDBObject doc = new BasicDBObject();
doc.put("id", dataID);
doc.put("time", dataTime);
doc.put("data", dataContent);
doc.put("status", dataStatus);
coll.insert(doc);
// 设定write concern,以便操作失败时得到提示
coll.setWriteConcern(WriteConcern.SAFE);
findOne(dbCollection);
}
/**
* 创建索引
*/
public void createIndex(String collection) {
MongoInit.getColl(collection).createIndex(new BasicDBObject("index_id", 1));
}
/**
* 获取索引信息
*/
public void getIndexInfo(String dbCollection) {
List list = MongoInit.getColl(dbCollection).getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
}
}
/**
* 添加多条记录
*/
public void addMultiData() {
for (int i = 0; i < 100; i++) {
MongoInit.getColl("wujintao").insert(
new BasicDBObject().append("i", i));
}
List docs = new ArrayList();
for (int i = 0; i < 50; i++) {
docs.add(new BasicDBObject().append("i", i));
}
MongoInit.getColl("wujintao").insert(docs);
// 设定write concern,以便操作失败时得到提示
MongoInit.getColl("wujintao").setWriteConcern(WriteConcern.SAFE);
}
/**
* 查找第一条记录
*/
public void findOne(String dbCollection) {
DBObject myDoc = MongoInit.getColl(dbCollection).findOne();
System.out.println(myDoc);
}
/**
* 获取表中所有记录条数
*/
public void count(String dbCollection) {
System.out.println(MongoInit.getColl(dbCollection).getCount());
System.out.println(MongoInit.getColl(dbCollection).count());
}
/**
* 获取查询结果集的记录数
*/
public void getCount(String dbCollection,String dataID) {
DBObject query = new BasicDBObject("id", dataID);
long count = MongoInit.getColl(dbCollection).count(query);
System.out.println(count);
}
/**
* 查询所有结果
*/
public void getAllDocuments(String dbCollection) {
DBCursor cursor = MongoInit.getColl(dbCollection).find();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
/**
* 按照一个条件查询
*/
public void queryByConditionOne() {
BasicDBObject query = new BasicDBObject();
query.put("name", "MongoDB");
DBCursor cursor = MongoInit.getColl("wujintao").find(query);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
public List queryById(String id) {
User user = SecurityUtils.getLoginUser();
BasicDBObject query = new BasicDBObject();
System.out.print(id);
query.put("id", id);
String table="table_";
DBCursor cursor = MongoInit.getColl("table_"+user.getUsername()).find(query);
List list=cursor.toArray();
System.out.println(list.size());
System.out.println("dao.."+list.toString());
List sensordata=new ArrayList();
for(int i=1;i50
*/
public void queryMulti2() {
BasicDBObject query = new BasicDBObject();
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 50)); // e.g. find all where i >
DBCursor cursor = MongoInit.getColl("wujintao").find(query);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
/**
* 区间查询
* select * from table where 20 < i <= 30
//比较符
//"$gt": 大于
//"$gte":大于等于
//"$lt": 小于
//"$lte":小于等于
//"$in": 包含
*/
public void queryMulti3() {
BasicDBObject query = new BasicDBObject();
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));
DBCursor cursor = MongoInit.getColl("wujintao").find(query);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
}
/**
* 组合in和and select * from test_Table where (a=5 or b=6) and (c=5 or d = 6)
*/
public void queryMulti4() {
BasicDBObject query11 = new BasicDBObject();
query11.put("a", 1);
BasicDBObject query12 = new BasicDBObject();
query12.put("b", 2);
List orQueryList1 = new ArrayList();
orQueryList1.add(query11);
orQueryList1.add(query12);
BasicDBObject orQuery1 = new BasicDBObject("$or", orQueryList1);
BasicDBObject query21 = new BasicDBObject();
query21.put("c", 5);
BasicDBObject query22 = new BasicDBO |