【发布时间】:2020-02-27 14:43:02
【问题描述】:
我的代码如下所示:
const express = require('express');
const mongoose= require('mongoose');
const Schema = mongoose.Schema;
const ourDataSchema = new Schema ({
rank : Number,
totalPoints : Number
});
const rankTotalpoint = mongoose.model("rankTotalpoint", ourDataSchema);
const ourData = [
{rank :1, totalPoints : 2000},
{rank :2, totalPoints : 1980},
{rank :3, totalPoints : 1940},
{rank :4, totalPoints : 1890},
{rank :5, totalPoints : 1830},
{rank :6, totalPoints : 1765}
];
rankTotalpoint.create(ourData, function (error) {
console.log('saved!');
if (error) {
console.log(error)
}
});
...
我有两个问题:
-
如何通过 totalPoint 获取 rank?
- 我试过
find(),但没用,我想我用错了。
- 我试过
我从用户那里得到一个输入(数字),我想将数字与我们从数据库中获取的 totalPoint(如果存在)(如果存在)进行匹配并返回它rank,如果不存在确切的数字,我想将它与我们数据库中最接近的 totalPoint 进行匹配,并将排名作为响应返回。
请至少回答我的第一个问题!
非常感谢您的回答,伙计们, 我被卡住了!
【问题讨论】:
-
您认为最接近的是什么...如果用户输入 1800 - 应该返回 1830 还是 1765?
-
这个没关系,我只是希望它与我拥有的totalPoint匹配并返回相关排名
-
我已经提供了一个答案 - 如果这是您要找的,请告诉我。
-
非常感谢你,这正是我想要的!它在现场演示中完美运行,但是当我在我的项目中使用邮递员对其进行测试时,它没有返回任何内容,我在这里发布我的代码作为答案,请查看。感谢您的友好回答,我真的被卡住了:)
-
请看我更新的答案。 (也在这里添加,以防人们看到这个线程而不是另一个)
标签: node.js mongodb mongoose find fetch