[英]filter in mongodb using node js
大家好,我嘗試使用過濾器查找特定數據,但我不知道我們如何設置或使用過濾器及其屬性。我已將 1 分表示為真,0 分表示為假。 我希望下次我調用這個問題時,它會過濾分數問題。 這樣第 0 個 id 問題將顯示在瀏覽器上,而不是一個
1). 這是我的架構,我在其中存儲每個問題的問題 ID、分數和時間
child:{
quiz:
questionId:{type:String},
score:{type:Number},
time:{type:String}
}
}
2)。 這是問題架構
_id:{type:String},
question:{type:String},
answer:{type:String}
3)。 這是我用於獲取和設置過濾器的節點 js 代碼實際上我不知道我們如何設置過濾器,這樣下次我調用 API 時,我的瀏覽器上只會出現第 0 個分數 id 問題,而不是 1
var childinfo = require('../models/child.js');
var childquestion = require('../models/question.js');
this.filter = 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);
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 = '';
childquestion.filter(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);
}
}
});
}
mongodb中嵌套字段的查詢可以這樣寫:
childinfo.find({"child.quiz.score": 1},function(err,data){ .. })
您應該引用這些字段並使用 : 而不是 ==。 所以你的代碼應該是:
var childinfo = require('../models/child.js');
var childquestion = require('../models/question.js');
this.filter = 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);
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 = '';
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);
}
}
});
}
編輯:代碼編輯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.