nodejs过滤mongodb数据

时间:2016-08-12 06:45:03

标签: javascript node.js mongodb

我正在为我的项目使用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); 
            }
        } 
    ]);
} 

0 个答案:

没有答案