我有3层嵌套对象存储在mongoDB中。 第一层显示了它应该的名称,第二层也是。 但当它进入第三层时,它会显示文本:“wrappedPointCut” 为什么是这样?而wrapedPointCut是什么意思??
我有一个像这样的把手测试代码:
{{#each tierOne}}
<h2>{{ this.tierOneName }}</h2>
{{#each tierTwo}}
<h2>{{ this.tierTwoName }}</h2>
{{#each tierThree}}
<h2>{{ this.tierThreeName }}</h2>
{{/each}}
{{/each}}
{{/each}}
</div>
在JS中迭代嵌套对象时,我在控制台中获得了正确的输出。此外,如果我向第三层添加4个对象,我会得到4个标题:“wrapedPointCut”。这必须意味着它知道这里有数据。
这是mongoDB结构: 这是第3层:
var TierThree = new mongoose.Schema({
tierThreeName : {
type: String
}
});
这是第2层:
var TierTwo = new mongoose.Schema({
tierTwoName : {
type: String
},
tierThree : [TierThree]
});
这是第1层:
var TierOne = mongoose.Schema({
tierOneName : {
type: String,
index:true
},
tierTwo: [TierTwo]
});
以下是将第三层导出到monngoDB的功能:
module.exports.createTierThree = function(newTierThree, tierOne, tierTwoName , callback){
for (var i = 0; i < tierOne.tierTwo.length; i++) {
if(tierOne.tierTwo[i].tierTwoName == tierTwoName ){
tierOne.tierTwo[i].tierThree.push(newTierThree);
tierOne.tierTwo[i].save(function (err) {
if (!err) console.log('Success!');
});
}
}
};
答案 0 :(得分:0)
问题似乎是我在添加到数据库时做错了什么。如果我使用shell命令添加到数据库,一切都很好。所以现在的问题是将mongoDB shell命令转换为JS。