DBObject name = new BasicDBObject("name",value); 를 사용하게 되면 


{ 이름 , 값 } 형식으로 나타 나게 된다 그렇게 때문에 gt lte 를 DBObject 로 표현하게 된다면

{이름 , 값 } { 이름, 값} 형식으로 나오게 된다.


두개의 값을 하나의 Object 로 나타내기 위해서는

BasicDBObject 를 사용하면 된다.


DBObject one = new DBObject();

BasicDBObject name = new BasicDBObject();

name.append("$gte",value);

name.append("$lte",value);


one.put("score",one); 를 하게되면 match 의 안의 쿼리 문이 나오게 된다

블로그 이미지

김진리

,

select longToday, count(*) from incaData group by longToday order by longToday 


절을 mongodb 로 전환하기


db.incaData.aggregate(    {$match  : { nScanResult : 5}}  ,      {$sort : { longToday : -1}} ,    { $group: { _id: "$longToday", count: { $sum: 1 } } }            );


$match는 sql 문에서 where 절 조건 , $sort 는 정렬 , $group 은 group by

블로그 이미지

김진리

,

sql쿼리를 mongodb쿼리로 전환

http://www.querymongo.com/

블로그 이미지

김진리

,
블로그 이미지

김진리

,

출처링크 : https://education.10gen.com

블로그 이미지

김진리

,

링크출처 : http://docs.mongodb.org/manual/reference/sql-aggregation-comparison/


Sql 과 MongoDb의 달라진 개념과 Example 을 통해서 구문을 볼수 있습니다.

블로그 이미지

김진리

,

DBCollection coll = mongoTemplate.getCollection("DBname");

DBObject limit = new BasicDBObject("$limit","value");

DBObject skip = new BasicDBObject("$skip", "value");

DBObject snum = new BasicDBObject("num","value");

DBObject sort = new BasicDBObject("$sort",snum);


    //sort 먼저 한후 limit 로 가져올행 skip 할 행

AggregationOutput output = coll.aggregate(sort,limit, skip);


for(DBObject obj : output.results()){

Article art = new Article();

String num = obj.get("value").toString();

String title = obj.get("value").toString();

String content = obj.get("value").toString();

}

limit 를 출력하면

{ "$limit"   : "9" }    9는 임의의 value

skip를 출력하면

{ "$skip"   : "0" }    9는 임의의 value

sort 를 출력하면

{ "$sort"   : { "num" : -1 } }    9는 임의의 value


DBObject 는 하나에 {} 안에 -  변수 : 값 이 들어 간다   ,  { "$변수" : "값"}

DBObject 안에 DBObject snum 변수를 sort의 변수로 사용할시   { "$변수"  :  {"$변수" : "값" } }

블로그 이미지

김진리

,

aggregate 를 지원하는 버전은 2.2 이후 부터 입니다.

dirver 를 2.2 이후나 최신으로 받아 주시거나 maven 을 이용하시면 최신으로 등록해주세요


   <dependency>

<groupId>org.mongodb</groupId>

<artifactId>mongo-java-driver</artifactId>

<version>2.11.0</version>

</dependency>



블로그 이미지

김진리

,

보통 <a href = "#" onclick"함수()"> 를 많이 쓰지만

#는 현재페이지를 가리키기 때문에  현재 페이지의 스크롤 하단을 보다가 페이지가 전환되면서 상단으로 바뀌는 상황이 나타 난다.

그래서 

<a href="javascript:;"> or <a href="javacript:void(0);"> 를 사용하여 아무 기능을 사용하지 않다고 정의해야한다.

블로그 이미지

김진리

,

UrlConnection 은 메모리에 모든 output data를 저장하고 , writting 작업이 끝나면 그때서야 네트워크로 보내기 때문에

UrlConnection.setChuckedStreamingMode() 를 사용해야 한다.

소켓관련등의 작업과 파일 입출력에서는 바이트 배열을 쓰게 되면 운영체제의 다이렉트 버퍼로 일단 한번 복사가 된다.

그리고 거기서 시스템콜에 의해서 실제 해당 버퍼로 전달됨.

 

아래 예제는 내부에 캐시하지말고 들어오는 대로 바로 보내는 설정 방식이다.

/* 
 * @Program that is used to enable streaming of a HTTP request body without 
    internal buffering, when the content length is not known in advance.
 * SetChunkedStreamingMode.java 
 * Author:-RoseIndia Team
 * Date:-25-Jun-2008
 */

import java.net.*;

public class SetChunkedStreamingMode {
 public static void main(String[] args) throws Exception {
        URL url = new URL("http://192.168.10.211:8080");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        //enable streaming of a HTTP request body without internal buffering

        connection.setChunkedStreamingMode(1);

        System.out.println("HTTP request body without internal buffering is set");
 }
}

블로그 이미지

김진리

,