Мой объект, как,MongoDB запрашивая вложенные объекты
{
"Team-A": {
"captain": "A",
"homeGround": "some ground",
"winLoss": "12-4-0"
},
"Team-B": {
"captain": "B",
"homeGround": "some ground 2",
"winLoss": "4-4-4"
}
}
Мне нужно, чтобы отобразить эту информацию,
<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 });
});
}
});
Джейд:
h1= obj.captain
h2= obj.homeGround
h3= obj.winLoss
Мой выход консоли:
{ _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
Я не понять, как я должен петлю через мой объект и получить значения Team-A/Team-B и их соответствующие детали.
Как достичь этого, используя nodejs
и jade
.
UPDATE:
Say есть 20 команд, моя коллекция будет состоять из 20 документов. То, что я хочу сделать, - прокрутить мою коллекцию и отобразить информацию в 20 документах, как описано выше.
Является ли моя структура db правильной? Должен ли я иметь другой документ для каждой команды?
Если да, то как я могу получить название документов (команда A, команда-B) динамически при рендеринге в нефрите?
Можете ли вы показать весь шаблон индекса нефрита? – gmaliar
@Guy Вот и все, есть инструкция 'extends layout', которая расширяет мою« главную страницу ». Я очень новичок в mongo/node/jade, поэтому я не знаю, как запросить db для получения значений 'Team-A' и его деталей. Это то, что я хочу знать –
Вам нужно переработать свою схему, чтобы каждая команда имела свой собственный документ с полем «имя», определяющим имя команды. – JohnnyHK