我的mongoDB中有一个文档
我从前端传递对象(用户应在输入字段中键入一些内容,例如,他键入“ test”:
{'countdown': 'test'}
然后我将其传递给我的后端,并想检查他是否输入正确
app.post('/answ', function(req, res) {
var query = req.body;
Model.find(query
, function(err, result) {
if (err) throw err;
if (result) {
if(result.length!== 0) {
res.json('ok');
} else {
res.json('not found');
}
} else {
res.send(JSON.stringify({
error : 'Error'
}))
}
})
});
因此,如果存在键值对,则后端将返回确定,否则返回未找到。 它适用于这种简单的对象,但是如果我尝试传递类似以下内容的话:
{'apilisttask': { 'port': '1', 'host': '2', 'path': '3', 'query': '4' } }
在此示例中,用户有4个输入字段,我收集了所有答案并将其传递给后端,但是即使答案正确,也无法给我带来好处。
请问您是否可以建议比较数据的更好方法,或者如何解决第二个比较问题?
答案 0 :(得分:1)
由于要在嵌入式文档中查找,因此无法查询嵌入式文档。
要查询嵌入式文档,您需要执行以下操作:
Model.find({'apilisttask.port':query.apilisttask.port, 'apilisttask.host':query.apilisttask.host, ...}, function(err, result){
// ---
});
这应该可以解决问题。