2017-09-13 2 views
3

Salut, j'ai besoin de convertir le document Mongo en DBObject (BasicDBObject).Mongo convertir le document en DBObject

Je télécharge un fichier sur mongo en utilisant GridFS et je veux définir des métadonnées, ce que je reçois dans le document. Je sais que Document est à peu près le même que DBObject. Je sais que je peux faire quelque chose comme ceci:

Document doc = new Document(); 
BasicDBObject.parse(doc.toJson()); 

Mais cela ne signifie-t-il pas une charge inutile?

La méthode gridFS setMetaData() accepte seulement DBObject donc je dois le convertir.

Y a-t-il une meilleure façon de le faire plutôt que de le convertir en chaîne et en retour?

+0

* n'est-ce pas forcément lourd? * Pourquoi le croyez-vous? – nullpointer

+0

Il est en fait un peu étrange et semble plus d'un oubli que le type n'a pas été mis à jour ici. Cependant, la réponse simple est bien sûr que c'est juste une «carte», et en tant que tel se comporte comme n'importe quel autre. –

+0

Ok, je ne pense pas que ce soit lourd, mais au moins, il m'a semblé inutile de le convertir en chaîne de caractères. –

Répondre

4

Vous êtes en quelque sorte en train de micro-optimiser ici.

Cependant, puisque les deux classes sont mises en œuvre de la carte, vous pouvez juste faire:

Document document = new Document(); 
BasicDBObject basicDBObject = new BasicDBObject(document); 

En interne, cette opération fait une Map#putAll qui met toutes les entrées de la carte du document dans la carte BasicDbObject.