2013-01-02 4 views
3
를 통해

DBOBJECT을 반환 JSON.parse 방법을 사용하여 JSON 데이터를 저장 설명 thisthis 같은 여러 튜토리얼이 있습니다. JSON 데이터를 저장하는 방법은 매우 간단하고 간단하지만 JSON을 구문 분석해야하는 이유는 무엇입니까? 파싱하지 않고 직접 JSON 문자열을 Mongo에 직접 저장할 수는 없지만 mongo 셸에서 수행 할 수 있습니다.MongoDB를 저장 JSON 문자열 자바

이유는 내가 덩어리 문서의 수천을 가지고 있고이 데이터를 분석하지 않음으로써 시간을 절약 할 수 있기 때문에이 물어! 간단히 말해서

는 DBOBJECT의 목록을 삽입하는 경우 사용 사례에

Collection coll = new Collection("mycollection"); 
coll.save("[{datakey1:dataval1},{datakey2:datavalue2},...]"); 
+2

하여 MongoDB는 JSON JS와 개체 구문 유사하기 때문에 콘솔 그것을 할 수하는 BSON 저장소 JSON 아닌 저장소이다. JSON을 모국어 개체로 디코딩 한 다음 실제 유효성을 확인하지 않고 저장하는 것만으로도 해킹을 요청하는 것입니다. 이는 MongoDBs 기본 쿼리를 제공하는 모든 종류의 주입 보호를 파괴하는 최악의 방법입니다. – Sammaye

+0

BSON에 대해 옳았습니다. 다른 것은 저장해야 할 데이터가 RDBMS 시스템에서 오는 백업 데이터 일뿐입니다. SQL 또는 스크립트 삽입을 수행 할 소비자 나 공격자가 없습니다. – Rishabh

+0

아, 그래도이 시나리오가 너무 끔찍하지 않아야합니다. 당신이 너무 여기에 삽입 사용 배치 싶어 수도 있습니다 귀하의 RBDMS에서 가져 오기 때문에 그러나 참으로 당신이이 일을 처음으로 디코딩 할 필요가 그래서 [[{ "hpisymptoms 같은 문자열을 삽입 – Sammaye

답변

0

자료는, 실제로 MongoDB의 여러 문서에서 발생합니다 일부 드라이버에서 양식을 다음의 자바 방법이있다. 이 MongoDB를위한 이상 사용 사례가 될 것으로 보인다, 다음과 같이 저장 될 수있다 : 당신이 몽고가 좋은 무엇이다 JSON 데이터를 쿼리 할 계획이없는 경우

{ 
    id: 507f191e810c19729de860ea, 
    value: '[[{"hpisymptoms":"of days in past 2 weeks depression free?"},{"hpisymptoms":"*"}]]' 
} 

에만이 작업을 수행해야합니다. json 데이터가 RDBMS 필드에 저장 되었기 때문에이 경우와 비슷합니다.

+0

글쎄,이 데이터는 일반적인 열 - 행 형식으로 RDMS에 저장되었지만 한 서버에서 다른 서버로 보내는 과정에서 JSON으로 정렬합니다. 수신기에서 수신되면 메모리에서 언 마샬해야합니다. – Sap

+0

Mongodb를 RDBMS의 JSON 캐시로 사용하려는 의도가 있습니까? – ltfishie

+0

나는 그것을 창고라고 부른다. – Sap