맵리듀스 두번째
1. 몽고디비 인서트
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
MongoClient mc=new MongoClient(“localhost”);
DB db=mc.getDB(“test”);
DBCollection dbc=db.getCollection(“person”);
BasicDBObject obj=new BasicDBObject();
obj.put(“name”, “일”);
obj.put(“sex”, “m”);
obj.put(“age”, 20);
dbc.insert(obj);
obj=new BasicDBObject();
obj.put(“name”, “이”);
obj.put(“sex”, “m”);
obj.put(“age”, 30);
dbc.insert(obj);
obj=new BasicDBObject();
obj.put(“name”, “삼”);
obj.put(“sex”, “w”);
obj.put(“age”, 20);
dbc.insert(obj);
obj=new BasicDBObject();
obj.put(“name”, “사”);
obj.put(“sex”, “m”);
obj.put(“age”, 40);
dbc.insert(obj);
obj=new BasicDBObject();
obj.put(“name”, “오”);
obj.put(“sex”, “m”);
obj.put(“age”, 30);
dbc.insert(obj);
}catch(Exception ex){System.out.println(ex.getMessage());}
}
2. 몽고디비 셀렉트
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
MongoClient mc=new MongoClient(“localhost”);
DB db=mc.getDB(“test”);
DBCollection dbc=db.getCollection(“person”);
DBCursor cursor=null;
BasicDBObject query=null;
cursor=dbc.find();
System.out.println(“1.COUNT…”);
System.out.println(“result:”+cursor.count());
while(cursor.hasNext()){
System.out.println(cursor.next());
}
cursor.close();
}catch(Exception ex){System.out.println(ex.getMessage());}
}

3. 비교연산자로 find
(몽고디비의 SELECT WHERE)
find({“age”,20}); 하면
여기에 조건을 줄 수 있다.
$gt (크다)
$gte (크거나 같다)
$lte (작거나 가다)
$lt (작다)
$ne (이콜이 아니다) (eq는 없다. 그냥 쓰는게 eq다)
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
MongoClient mc=new MongoClient(“localhost”);
DB db=mc.getDB(“test”);
DBCollection dbc=db.getCollection(“person”);
DBCursor cursor=null;
BasicDBObject query=null;
cursor=dbc.find();
System.out.println(“1.COUNT…”);
System.out.println(“result:”+cursor.count());
System.out.println(“================”);
String[] op={“$gt”,”$lt”,”$lte”,”$gte”,”$ne”};
for(String str:op){
query=new BasicDBObject(“age”,new BasicDBObject(str,20));
cursor=dbc.find(query);
System.out.println(“비교연산자: 값 “+str+” “+20);
System.out.println(“Result: “+cursor.count());
while(cursor.hasNext()){
System.out.println(cursor.next());
}
cursor.close();
}
}catch(Exception ex){System.out.println(ex.getMessage());}
}

4. 패턴으로 find (많은 의문이 남아있음.)
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
MongoClient mc=new MongoClient(“localhost”);
DB db=mc.getDB(“test”);
DBCollection dbc=db.getCollection(“person”);
DBCursor cursor=null;
BasicDBObject query=null;
cursor=dbc.find();
System.out.println(“전체 갯수:”+cursor.count());
System.out.println(“================”);
System.out.println();
Pattern j=Pattern.compile(“일”,Pattern.CASE_INSENSITIVE);
query=new BasicDBObject(“name”,j);
BasicDBObject keys=new BasicDBObject();//조건 세 개 and로 묶기?????????????????
cursor=dbc.find(query,keys);
System.out.println(“result: “+cursor.count());
while(cursor.hasNext()){
System.out.println(cursor.next());
}
cursor.close();
}catch(Exception ex){System.out.println(ex.getMessage());}
}

5. $in 과 $nin
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
MongoClient mc=new MongoClient(“localhost”);
DB db=mc.getDB(“test”);
DBCollection dbc=db.getCollection(“person”);
DBCursor cursor=null;
BasicDBObject query=null;
cursor=dbc.find();
System.out.println(“전체 갯수:”+cursor.count());
System.out.println(“================”);
String[] or={“$in”,”$nin”};
int[] age_arr={20,30};
for(int i=0;i<or.length;i++){
query=new BasicDBObject(“age”,new BasicDBObject(or[i],age_arr));
cursor=dbc.find(query);
System.out.println(“결과 갯수: “+cursor.count());
while(cursor.hasNext()){
System.out.println(cursor.next());
}
cursor.close();
}
}catch(Exception ex){System.out.println(ex.getMessage());}
}
