How to transform the FindIterable of a query in the database (mongoDB) to a list of DTO objects.

0
  

Bank structure:

>db.produtos.find().pretty();
{
    "_id" : ObjectId("58879057e53276e2f7bf43be"),
    "descricao" : "Bisnaguinha",
    "preco" : 4.8
}
{
    "_id" : ObjectId("58879067e53276e2f7bf43bf"),
    "descicao" : "Nutella",
    "preco" : 12.4
}
  

DTO:

package com.simple.dto;
public class ProdutoDTO {

    public Object _id;
    public String descricao;
    public double preco;

    public Object get_id() { return _id;}
    public void set_id(Object _id) { this._id = _id;}

    public String getDescricao() { return descricao;}
    public void setDescricao(String descricao) { this.descricao = descricao;}

    public double getPreco() { return preco;}
    public void setPreco(double preco) { this.preco = preco;}

}
  

Query class:

package com.simple.dao;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class MongoConection {
    public void mongoTeste(){
        MongoClient mongo = new MongoClient( "localhost" , 27017 );

        MongoDatabase database = mongo.getDatabase("test");

        MongoCollection produtos = database.getCollection("produtos");

        FindIterable<Document> resultadoDaBusca = produtos.find();

        for (Document document : resultadoDaBusca) {
            System.out.println(document.toJson());
        }
    }
}
  

Log out:

{ "_id" : { "$oid" : "58879057e53276e2f7bf43be" }, "descricao" : "Bisnaguinha", "preco" : 4.8 }
{ "_id" : { "$oid" : "58879067e53276e2f7bf43bf" }, "descicao" : "Nutella", "preco" : 12.4 }
    
asked by anonymous 24.01.2017 / 18:57

1 answer

1
  

Following your friend's guidelines: link

package com.simple.dao;
import com.google.gson.Gson;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.simple.dto.ProdutoDTO;
import org.bson.Document;

public class MongoConection {
    public void mongoTeste(){
        MongoClient mongo = new MongoClient( "localhost" , 27017 );

        MongoDatabase database = mongo.getDatabase("test");

        MongoCollection produtos = database.getCollection("produtos");


        FindIterable<Document> resultadoDaBusca = produtos.find().limit(1);

        ProdutoDTO objTeste = new ProdutoDTO();

        for (Document document : resultadoDaBusca) {
            objTeste = new Gson().fromJson(document.toJson(), ProdutoDTO.class);
        }

        System.out.println(objTeste.getDescricao());
        System.out.println(objTeste.getPreco());
    }
}
  

Console log:

Bisnaguinha
4.8
  

Bank:

> db.produtos.find().pretty()
{
    "_id" : ObjectId("58879057e53276e2f7bf43be"),
    "descricao" : "Bisnaguinha",
    "preco" : 4.8
}
>
    
26.01.2017 / 11:52