블로그 이미지

김진리

,

출처링크 : 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");
 }
}

블로그 이미지

김진리

,

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mongo="http://www.springframework.org/schema/data/mongo"

xsi:schemaLocation="http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">


mongoTemplate에 주입시키기 위해서 사용

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">

<constructor-arg ref="mongoDbFactory"/>

</bean>

MakeHttp 객체를 spring 에서 관리하기 위해서 등록 , 변수로 mongoTemplate 을 주입

<bean id="makeHttp" class="httpClient.MakeHttp">

<constructor-arg ref="mongoTemplate"></constructor-arg>

</bean>

mongoDbFactory 에 이름 , DB이름 , host , port , username , password 설정

<beans profile="default">

<mongo:db-factory id="mongoDbFactory" dbname="incatable" host="127.0.0.1" port="27017"

username="inca" password="1"/>

</beans>

</beans>


블로그 이미지

김진리

,

DB 인 admin 안에 계정을 만들어야 합니다.

1. 먼저 use admin 으로 접근하여 사용자 계정을 추가 합니다.

ex) inca , 1 로 생성합니다.

2. auth 를 하기 전엔 show dbs 하였으나 실패했다고 합니다.

3. auth요청을 한 후에는 사용이 가능합니다.


MongoDB Server 작동시

--auth 를 추가한다.



블로그 이미지

김진리

,
블로그 이미지

김진리

,