types java dans org.bson.BSONObject
Question
J'apprends actuellement la bibliothèque BSON java pour MongoDB et I » m essayant de transformer un org.bson.BSONObject en XML afin de le transformer avec un XSLT stylesheet.
Quel genre de types java puis-je trouver en tant que valeurs dans un BSONObject d'un MongoDB? Bien sûr, il y aura:
- BSONObject (doc interne)
- java.lang.String
- ???
quels sont les autres? BigDecimal et BigInteger? booléen, int, long, double? Timestamp .. etc ... ??
merci,
Pierre
La solution
Nous avons dû chercher trop, mais selon ce après mongodb-dev mapping se fait comme suit:
NULL null
UNDEFINED null
BOOLEAN Boolean
NUMBER Double
NUMBER_INT Integer
NUMBER_LONG Long
SYMBOL String
STRING String
OID mongodb ObjectID
REF DBPointer
DATE Date
REGEX Pattern
BINARY DBBinary
CODE (exception)
ARRAY DBList
OBJECT DBObject or DBRef
TIMESTAMP DBTimestamp
MINKEY String: "MinKey"
MAXKEY String: "MaxKey"
Cet article sur mongodb.org est une bonne ressource pour elle aussi .
Edit: Il y avait un coup d'œil à la source. Org.bson.types * est d'avoir un certain nombre de classes pour les types de BSON. org.bson.BSONDecoder décode une chaîne BSON et le mapping indiqué ci-dessus.
Autres conseils
Une autre façon d'opérer sur BSON serait d'utiliser Jackson processeur JSON ; bien que par défaut, il fonctionne sur JSON, il existe des extensions pour l'utiliser à la fois sur BSON et XML . Depuis Jackson fait la liaison de données, vous pouvez lier des données BSON en Java POJO (avec bson4jackson
) et écrire comme XML (avec jackson-xml-databind
).
La transformation serait aussi simple que:
String xml = xmlMapper.writeValue(bsonMapper.readValue(bsonData, MyPojo.class));
si vous avez, ou pouvez créer, MyPojo
qui associe toutes les propriétés; ou sinon en spécifiant que le type Map.class
intermédiaire à se lier à.