Como fazer um ciclo mongodb matriz com o express e o monge para criar uma página para cada elemento?
Pergunta
Estou construindo uma aplicação web com expressa, nodejs e monge.Estou tentando criar uma página para cada elemento de uma matriz em meu banco de dados mongodb.
Os dados já está na coleção chamada coleções com a chave coll_list assim:
{ "_id" : ObjectId("53dbaefd3d85d57492506f1f"), "coll_list" : [ "data_pagename1",
"data_pagename2", "data_pagename3" ] }
Eu pensei que poderia ser possível para fazer um loop através de todos os elementos de coll_list com algo como:
router.get('/index', function(req, res) {
var db = req.db;
var collection = db.get('collections');
collection.find( "coll_list" , function(e,docs) {
for (elems in docs) {
res.render(elems, {
elems : docs
});
}
});
});
Quaisquer sugestões ou ajuda/indicações sobre como fazer isso seria muito apreciado.
Solução
Utilização req.params
router.get('/coll/:id',
function(req,res){
//access the id by req.params.id
//req.params.id will essentially be the _id of the document
//use it to obtain data from mongoDB and render the page using that data
//From the front end you make the call to /coll/<ObjectId> like
// /coll/53dbaefd3d85d57492506f1f and you get that id in req.params.id and use it to
//render data specific to that _id.
});
Assim, usando uma única rota que você seria capaz de criar uma página para cada item de coll_list
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow