2011-04-19 5 views
1

J'utilise node.js avec express et connect-mongo comme magasin de session. Lorsque je vérifie ma collection de sessions dans mongo, il n'y a que l'attribut _id un attribut de session dans chaque ensemble de données. La valeur de l'attribut de session est une chaîne. Y at-il un moyen de stocker les données de session en tant que BSON?Enregistrer la session en tant que BSON au lieu d'une chaîne sur node.js avec MongoDB

+0

[Il n'existe pas d'objet JSON.] (Http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) –

+1

Wow, the Le terme '' objet JSON "' a vraiment pris son envol. Il peut devenir l'un de ces malentendus comme 'XMLHttpRequest' qui n'a rien à voir avec XML. – Anurag

+0

@Matt Pourquoi ce JSON n'est-il pas? Je ne vois pas la connexion à votre article, car le stockage de données de MongoDB est fait pour JSON, et par conséquent l'objet utilisé dans node.js ne doit pas être stringifié. En fait, c'est exactement le point de ma question. – Thomas

Répondre

0

Peut-être que je ne comprends pas votre question directement, mais MongoDB stocke déjà tout en utilisant BSON. Donc, si vous stockez votre collection Session telle quelle, elle sera convertie en une chaîne JSON.

Référence: http://www.mongodb.org/display/DOCS/Inserting

EDIT:

Jetez aussi un coup d'oeil à ce>Mongo JSON document -> JSON -> BSON

Cela peut aider dans votre scénario spécifique.

+0

Je pense que c'est un problème spécifique à node.js, car je pensais que le gestionnaire de session mongodb-connect le gèrerait déjà comme ça. – Thomas

0

C'est simplement la façon dont cet intergiciel a été écrit pour fonctionner (mais qui sait pourquoi cela a été fait de cette façon).

Il convertit votre objet session en une chaîne json lorsqu'il l'enregistre dans mongodb et le convertit en objet lorsqu'il est à nouveau lu.

Je suggère de passer à l'alternative connect-mongodb middleware si vous voulez que les objets de session stockés comme le même objet dans mongodb. La connexion pour connect-mongodb est un peu différente de connect-mongo, mais une fois que la connexion est établie, le reste de l'API est le même, donc votre code existant devrait fonctionner.

Questions connexes