Created
November 1, 2011 21:09
-
-
Save huogerac/1331915 to your computer and use it in GitHub Desktop.
MongoDB Tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Entity | |
public class Produto { | |
@Id private ObjectId id; | |
private String nome; | |
private String complemento; | |
private String tag; | |
private double preco; | |
private Date inicioEm; | |
private Date validoAte; | |
//getters and setters | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ProdutoDAO extends BasicDAO<Produto, String> { | |
public ProdutoDAO(Mongo mongo, Morphia morphia, String dbName) { | |
super(mongo, morphia, dbName); | |
} | |
public List<Produto> findByTag(String tag) { | |
List<Produto> result = super.getDatastore().find(Produto.class).field("tag").equal(tag).asList(); | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Então, o funcionamento parece ser esse mesmo, mas depois de dominar a parte mais basica, de uma lida sobre as partes q tornam o mongo diferente dos bancos relacionais.
Uma dessas caracteristicas, é a de usar objetos embedded, e de poder fazer modificações direto nesses objetos embedded, sem ter que fazer joins. Por exemplo, imagina que seu sistema fosse para os usuários fazerem comentários sobre os produtos. Com o Mongo, vc poderia fazer esses comentários (com autor, nome, data, ou seja, um objeto Comentário completo), como uma lista de objetos embedded no Produto.
Assim quando vc for carregar o Produto, ja vem com todos os comentários juntos, e vc também tem operações como $push,$set e $pull para modificar os comentários dentro dos produtos de forma muito eficientes.
Essas operações que descrevi estão aqui:
http://www.mongodb.org/display/DOCS/Updating
Não sei se o link é esse, mas fala sobre como pensar no schema para o Mongo:
http://www.mongodb.org/display/DOCS/Schema+Design