我目前正在从事一个项目,该项目需要我提出一个有效的算法,因为输入的数量正在快速增加! 我试图用node js调用mongodb以获得一些数据!当接收到数据时,我试图根据用户输入对每个数据进行排名,然后将其显示给用户!我试图在节点js中执行此操作,并且由于数据量太大,我遇到了超时错误,因为我必须一次根据用户答案从mongo中获取数据,然后再次根据节点中用户的答案对数据库进行排名,所以我必须两次浏览此数据!这是数据的结构:
{
"specialty": {
"Anxiety":{
"All":20
none:0
},
"Depression":{
"All":20
"none":0
}
"Chronic Pain" :{
"All":20
}
},
"institution":{
value:["value1","val2"]
score:30
},
"religion": {
value:["value1","val2"]
score:30
},
"income": {
value:["value1","val2"]
score:30
},
"agegroup": {
value:["value1","val2"]
score:20
},
"gender": {
value:["male"]
score:10
}
"location":{
lon:180
lat:0
}
}
所以我需要做的是,如果用户选择“专业”和“全部”,那么得分是20,如果他们还选择了“抑郁”和“无”,那么得分现在是40!如果用户还在机构字段中选择“ val1”,则得分将为70!我需要编写一个带有聚合管道的查询,该查询求和每个数据的所有分数,并将其发送给node! 我不确定如何完成此操作,我将不胜感激!