Mon objet est comme,MongoDB interroger des objets imbriqués
{
"Team-A": {
"captain": "A",
"homeGround": "some ground",
"winLoss": "12-4-0"
},
"Team-B": {
"captain": "B",
"homeGround": "some ground 2",
"winLoss": "4-4-4"
}
}
Je dois montrer ces informations,
<h1>Team-A</h1>
<h2>some ground</h2>
<h3>12-4-0</h3>
<h1>Team-B</h1>
<h2>some ground2</h2>
<h3>4-4-4</h3>
NodeJS:
MongoClient.connect("mongodb://localhost:27017/MY_DB_TEST", function(err, db) {
if(!err) {
console.log("We are connected");
var collection = db.collection('football_teams');
var stream = collection.find().stream();
stream.on("data", function(item){
console.log(item);
res.render('index', {obj: item });
});
}
});
Jade:
h1= obj.captain
h2= obj.homeGround
h3= obj.winLoss
Ma sortie de la console est:
{ _id: 51064fa1e0d5d118b4b29aa0,
'Team-A': {
'captain": 'A',
'homeGround": 'some ground',
'winLoss': '12-4-0'
} }
title is not defined
at eval (eval at <anonymous> (C:\node_modules\jade\lib\jade.js:176:8))
at exports.compile (C:\node_modules\jade\lib\jade.js:181:12)
at Object.exports.render (C:\node_modules\jade\lib\jade.js:216:14)
at View.exports.renderFile [as engine] (C:\node_modules\jade\lib\jade.js:243:13)
at View.render (C:\node_modules\express\lib\view.js:75:8)
at Function.app.render (C:\node_modules\express\lib\application.js:503:10)
at ServerResponse.res.render (C:\node_modules\express\lib\response.js:721:7)
at CursorStream.exports.index (C:\Users\HFR&D\Desktop\nodemongoexpress\routes\index.js:18:8)
at CursorStream.EventEmitter.emit (events.js:96:17)
at CursorStream._onNextObject (C:\Users\HFR&D\Desktop\nodemongoexpress\node_modules\mongodb\lib\mongodb\cursorstream
Je ne comprends pas comment je devrais boucle à travers mon objet et obtenir les valeurs de l'équipe-A/Team-B et leurs coordonnées respectives. Comment puis-je y parvenir en utilisant nodejs
et jade
.
MISE À JOUR:
disent qu'il ya 20 équipes, ma volonté de collection se compose de 20 documents. Ce que je veux faire, c'est faire une boucle dans ma collection et afficher des informations dans les 20 documents comme décrit ci-dessus.
Ma structure db est-elle correcte? Dois-je avoir un document différent pour chaque équipe? Si oui, comment obtenir le titre des documents (équipe-A, équipe-B) dynamiquement pendant le rendu en jade?
Pouvez-vous afficher l'ensemble du modèle jade d'index? – gmaliar
@Guy C'est tout ce qu'il ya, il y a une instruction 'extends extends' qui étend ma 'page maître'. Je suis très nouveau sur mongo/node/jade, donc je ne sais pas comment interroger le db pour obtenir les valeurs 'Team-A' et ses détails. C'est ce que je veux savoir –
Vous devez retravailler votre schéma pour que chaque équipe ait son propre document avec un champ 'name' identifiant le nom de l'équipe. – JohnnyHK