我正在为我的项目使用node和MongoDB,在这里我需要在节点脚本上设置过滤器,以便过滤从MongoDB发出的数据。但我不明白如何在我的脚本上使用过滤功能。它将是一个过滤方法,或者我可以使用find方法,或使用循环 使用node js脚本过滤MongoDB中的数据。
我并不完全理解。
我想做什么?
1)我从MongoDB向前端发送了一个问题。
2)问题数据来自前端并通过使用节点js API保存。我必须保存questionId,得分。
3)下次我必须发送数据时,我需要在此处过滤,以便我之前发送的数据不再发送。
Id将在MongoDB中自动生成。所以我这里没有提到身份证。
这是我的问题架构
title: {type: String, required:true},
options: {type: Array, required:true},
result: {type: Array, required:true},
这里我存储了我的问题,得分值来自前端。
这是我的问题ID,得分保存架构
child: {
quiz: {
questionId:{type:String},
score:{type:Number},
time:{type:String}
}
}
这是我的节点js API过滤器。我正在尝试这个,但我不确定这是对还是错。请帮我解决这个问题.m
this.childfilter = function(req, res, next) {
async.waterfall ([
function(callback) {
try {
var query = { 'child.quiz.score': 1 };
var projection = '';
childinfo.find(query,function(err,data) {
if(err) return next(err);
res.send(data);
callback(null, data)
});
}
catch(err) {
console.log(err);
return next(err);
}
},
function(callback, data) {
try {
var childq = new childquestion();
var query = { 'data.child.quiz.questionId' : childq._id };
var projection = 'id title options result';
childquestion.find(query,projection)
.skip()
.exec(function(err,data){
if (err) return next(err);
res.send(data);
});
}
catch(err) {
console.log('Error While Saving the result ' +err);
return next(err);
}
}
]);
}