我正在尝试查询数据库中的记录,但是得到一个空数组。我不知道我在做什么错?我觉得问题可能出在我的架构上,这里是:
我的模式
const QuizSchema = new Schema({
question: {
type:String,
default:''
},
answers: [{
type: {
type: String,
default:''
},
content: {
type: String,
default:''
},
}]
});
module.exports=Quiz=mongoose.model('quizes',QuizSchema,'quiz');
这是猫鼬查询
const Quiz = require('../../models/Quiz');
router.get('/',(req,res)=>{
Quiz.find({},null)
.then(data=>res.json(data))
.catch(err=>console.log(err))
});
module.exports = router;
这是一个示例JSON数据
{
"question": "What is a Mongoose ? ",
"answers": [
{ "type": "Smart","content": "Animal" }, {"type": "Subpar", "content": "Software"}, { "type": "Confused", "content": "Poem" }]
}
非常感谢您的协助。预先感谢!
答案 0 :(得分:1)
<query>.then
不返回数据。您应该使用<query>.exec().then
访问查询返回的数据。因此,将您的代码更改为:
Quiz.find({},null)
.exec()
.then(data=>res.json(data))
.catch(err=>console.log(err))
});
module.exports = router;
答案 1 :(得分:0)
像这样修改架构:在数组内部,不接受像'type'这样的字段名称。
const QuizSchema = new Schema({
question: {
type:String,
default:''
},
answers: [{
ans_type: { // CHANGE HERE
type: String,
default:''
},
content: {
type: String,
default:''
},
}]
});
module.exports=Quiz=mongoose.model('quizes',QuizSchema,'quiz');