Mongoose:如何在文档中查询字段

时间:2016-12-11 07:41:47

标签: node.js mongodb express mongoose mongoose-schema

我有一个有一系列问题的文档,我希望每次提交按钮时都会运行请求问题数组中的下一个问题的函数,基本上它的测验应用程序我要显示保存在数据库中的问题文档和所有问题都保存在数组中

我构建数据的方式是正确的,即数组和单个文档中的所有问题

我的问题是如何检索单个文档中保存的数组中的每个问题,我做了类似这样的事情:

var schema = new mongoose.Schema({
question : []
})
var quizz = mongoose.model('Quiz', schema );

var firstDoc = new quizz({
question: ['question 1', 'question 2', 'question 3', 'question 4']
})

firstDoc.save(function(err, res){
 if(err){
   console.log("error occured while saving document object " + err )
 }else{
   console.log("saved data");
 }
})

我是否应该制作一些ID以识别数组中的每个问题,以便我可以根据ID提出问题,或者这是正确的我正在做什么

1 个答案:

答案 0 :(得分:0)

要查看数组中具有特定值的文档,您必须使用$in

quizz.findOne({ question: {$in: ['question 1'] }, function (err, doc) {
   console.log(doc);
});

您的目的的正确架构应如下所示:

var QuestionSchema = new mongoose.Schema({
   question: String
});

然后,您可以使用架构为您拥有的每个问题创建文档。

var firstQuestion = new quizz({
   question: 'question 1'
});
var secondQuestion = new quizz({
   question: 'question 2'
});

等...