import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
public class MongoOptUtil {
//统计多个集合中的文档总数
public static int countMultiCollection(ArrayList<String> collectionName , DB db ){
int total = 0;
ArrayList<String> collectionName1 = collectionName;
collectionName1.size();
System.out.println("The collections count: "+collectionName1.size());
for (int i = 0; i < collectionName1.size(); i++) {
DBCollection users = db.getCollection(collectionName1.get(i));
System.out.println(collectionName1.get(i));
total = (int) (total + users.count());
}
System.out.println("The document total: "+total);
return total;
}
//统计单个集合中的文档总数
public static void countSimpleCollection(String collectionName , DB db){
DBCollection users = db.getCollection(collectionName);
DBCursor cur = users.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
System.out.println("count: " + users.count());
}
//查询单个集合中的GAS文档
public static void findSimpleCollGAS(String collectionName , DB db, String queryCondition, String queryValue){
DBCollection users = db.getCollection(collectionName);
System.out.println(collectionName);
System.out.println("The GAS result" + users.find(new BasicDBObject(queryCondition, queryValue)).toArray());
}
//查询多个集合中的GAS文档
public static void findMultiCollGAS(ArrayList<String> collectionName , DB db, String queryCondition, String queryValue){
ArrayList<String> collectionName1 = collectionName;
List<DBObject> test;
int i = 0;
boolean fag = false;
while (i < collectionName1.size()&& fag == false ) {
DBCollection users = db.getCollection(collectionName1.get(i));
// System.out.println(collectionName);
test = users.find(new BasicDBObject(queryCondition, queryValue)).toArray();
// System.out.println("the result quantity : "+test.size());
if (test.size()==1) {
System.out.println("the collection name : "+collectionName.get(i));
System.out.println("the result content : " +users.find(new BasicDBObject(queryCondition, queryValue)).toArray());
fag = true;
}
i ++;
}
}
//查询满足条件的gas记录,并写入本地文件
public static Boolean findAllCollGAS(String collectionName , DB db, String queryCondition, String queryValue) throws IOException{
DBCollection users = db.getCollection(collectionName);
List<DBObject> test;
String content = null ;
test = users.find(new BasicDBObject(queryCondition, queryValue)).toArray();
boolean fag = false;
if (test.size()==1) {
System.out.println(collectionName+ " -- Found ! -- ");
System.out.println(" ---- Success ---- ");
fag = true;
content = users.find(new BasicDBObject(queryCondition, queryValue)).toArray().toString();
}
if (fag) {
String SaveAddr = "D:\\" ;
String Failname = "MongoDB_tmp_Score.txt" ;
MongoDateIO TMP = new MongoDateIO();
TMP.FileWrite(content, SaveAddr, Failname) ;
TMP.FileResultQuery(SaveAddr+Failname, "\"score\"") ;
return true;
}
else {
System.out.println(" -- NotFound !! -- " );
System.out.println(" ---- Error ---- ");
return false;
}
}
}
要点:
1 Mongo中的查询操作
2 MutilDocuments中的查询