2015-08-27 143 views
0

嵌套模式假設我有這樣的貓鼬架構在我models.js文件:創建於貓鼬

var Mongoose = require('mongoose'); 

var ProjectSchema = new Mongoose.Schema({ 
    "name": String, 
    "id": String, 
    "phone": String, 
    "address": String, 
    "dob": String, 
    "action": String, 
    "ccard": { 
     "type": String, 
     "number": String, 
     "status": String, 
     "expiry": String 
    } 
}); 

exports.Project = Mongoose.model('Project', ProjectSchema); 

並假設我已經有網站使用的MongoDB從與必要信息的JSON文件加載數據。我將如何在HTML模板中調用ccard的字段?截至目前,我可以在{{each projects}} ... {{/each}}條款中撥打{{name}}{{id}},但沒有問題,但是當我撥打{{ccard.number}}時,它不會輸出任何內容。

HTML樣本:

{{each projects}} 
<table> 
    <tr> 
     <td>{{ccard.type}}</td> 
     <td>{{ccard.number}}</td> 
     <td>{{ccard.status}}</td> 
     <td>{{ccard.expiry}}</td>             
    </tr> 
</table> 
{{/each}} 

在模式或模板變量或其他地方的問題?

+0

你試過'{{ccard.type}}'在你的模板? –

+0

是的,我嘗試了所有'ccard'的成員變量,但是當我運行該網站時,沒有與這些變量對應的JSON中的數據。 – maregor

+1

您可以將HTML模板代碼添加到問題中。 ProjectSchema中的「digits」字段在哪裏? – Vishnu

回答

1
var Mongoose = require('mongoose'); 

var ProjectSchema = new Mongoose.Schema({ 
    "name": String, 
    "id": String, 
    "phone": String, 
    "address": String, 
    "dob": String, 
    "action": String, 
    "ccard": { 
     "type": { 
      "type": String, 
     } 
     "number": String, 
     "status": String, 
     "expiry": String 
    } 
}); 

exports.Project = Mongoose.model('Project', ProjectSchema); 

我不知道上面的代碼是否正常工作。如果它不更改列名稱,如下所述。

var Mongoose = require('mongoose'); 

var ProjectSchema = new Mongoose.Schema({ 
    "name": String, 
    "id": String, 
    "phone": String, 
    "address": String, 
    "dob": String, 
    "action": String, 
    "ccard": { 
     "ccartType": String, 
     "number": String, 
     "status": String, 
     "expiry": String 
    } 
}); 

exports.Project = Mongoose.model('Project', ProjectSchema); 

模板代碼

{{each projects}} 
<table> 
    <tr> 
     <td>{{ccard.ccartType}}</td> 
     <td>{{ccard.number}}</td> 
     <td>{{ccard.status}}</td> 
     <td>{{ccard.expiry}}</td>             
    </tr> 
</table> 
{{/each}} 

變化如上所述,並確保該模型是在MongoDB的架構改變了模型。

原因可能是它正在ccard爲單柱typestring

2

架構寫入正確。 我可以看到

"ccard": { 
     "type": String, 
     "number": String, 
     "status": String, 
     "expiry": String 
} 

您可以通過保存文檔的變量名來訪問。讓我們假設你在

var = project 

進賬1號文件,現在你可以訪問#{project.ccard.status}{{project.ccard.status}}

+0

@Trisha我不認爲模式是正確的'ccard'類型設置爲字符串。 – Vishnu

+0

@Mahesh我所做的只是格式化原始答案的代碼 - 也許yojnajaininfo可以更多地瞭解答案? – Trisha