2011-04-19 4 views
1

express 및 connect-mongo와 함께 node.js를 세션 저장소로 사용하고 있습니다. mongo에서 내 세션 컬렉션을 확인할 때 각 데이터 집합에 세션 속성 인 _id 속성 만 있습니다. 세션 속성의 값은 String입니다. BSON으로 세션 데이터를 저장할 방법이 있습니까?NongoDB에서 node.js의 문자열 대신 BSON으로 세션 저장

+0

[ "JSON 개체"와 같은 것은 없습니다.] (http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/) –

+1

와우, 용어''JSON 객체 ''가 실제로 나왔습니다. 그것은 XML과 관련이없는'XMLHttpRequest'와 같은 잘못된 명칭 중 하나가 될 수 있습니다. – Anurag

+0

@Matt이 JSON이 왜 아닌가요? MongoDB의 데이터 저장소가 JSON 용으로 만들어 졌으므로 기사에 대한 연결을 볼 수 없으므로 node.js에 사용 된 개체는 문자열로 묶어서는 안됩니다. 사실, 그게 내 질문의 핵심이야. – Thomas

답변

0

아마도 직접 질문을 이해할 수 없지만 MongoDB는 이미 BSON을 사용하여 모든 것을 저장합니다. 따라서 세션 컬렉션을 그대로 저장하면 JSON 문자열로 변환됩니다.

참조 : http://www.mongodb.org/display/DOCS/Inserting

편집 :

는 또한

Mongo JSON document -> JSON -> BSON은 특정 시나리오에 도움이 될 수 있습니다> 이것 좀보세요.

+0

나는 mongodb-connect 세션 핸들러가 이미 그것을 관리 할 것이라고 생각했기 때문에 이것이 node.js의 특정 문제라고 생각한다. – Thomas

0

이것은 단순히이 특정 미들웨어가 작동하도록 작성된 방법입니다 (누가 그렇게했는지는 알지만).

세션 객체를 mongodb에 저장할 때 세션 객체를 json 문자열로 변환하고 다시 읽을 때 객체로 변환합니다.

mongodb에서 동일한 개체로 저장된 세션 개체를 원할 경우 대체 connect-mongodb 미들웨어로 전환하는 것이 좋습니다. connect-mongodb에 대한 연결은 connect-mongo와는 조금 다르지만 일단 연결을 설정하면 나머지 API는 동일하므로 기존 코드가 제대로 작동해야합니다.