tipi Java in org.bson.BSONObject
Domanda
Al momento sto imparando il BSON java libreria per MongoDB e io' Sto cercando di trasformare una org.bson.BSONObject in XML al fine di trasformarlo con un XSLT foglio di stile.
Che tipo di tipi Java posso trovare come valori in un BSONObject da un MongoDB? Naturalmente ci saranno:
- BSONObject (doc interno)
- java.lang.String
- ???
Quali sono gli altri? BigDecimal e BigInteger? booleano, int, long, double? Timestamp .. ecc ... ??
grazie,
Pierre
Soluzione
dovuto cercare troppo, ma secondo questo < dopo la mappatura / a> mongodb-dev è fatto in questo modo:
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"
Questo articolo su mongodb.org è una buona risorsa per questo, anche .
Modifica: Abbiamo dato un'occhiata alla fonte:. Org.bson.types * sta avendo una serie di classi per i tipi BSON. org.bson.BSONDecoder decodifica una stringa BSON e che la mappatura elencato sopra.
Altri suggerimenti
Un modo alternativo per operare su BSON sarebbe usare Jackson JSON processore ; anche se di default opera su JSON, ci sono estensioni di usarlo sia su BSON e XML . Dal momento che Jackson fa l'associazione di dati, è possibile associare i dati BSON in Java POJO (con bson4jackson
) e scrivere in formato XML (con jackson-xml-databind
).
La trasformazione sarebbe semplice come:
String xml = xmlMapper.writeValue(bsonMapper.readValue(bsonData, MyPojo.class));
Se avete, o creare, MyPojo
che mappa tutte le proprietà; o, se non specificando Map.class
come tipo intermedio da associare.