Javascript 尝试使用NodeJS从MongoDB限制我的结果并对数据进行排序

Javascript 尝试使用NodeJS从MongoDB限制我的结果并对数据进行排序,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在使用MongoDB和Node.JS,我正在尝试从我的MongoDB中获取数据并显示到我的html页面中,我正在使用下面的代码,但是这只是以不特定的顺序返回所有条目: server.js // This is for getting the list of all players from my DB app.get("/getPlayers", function(request, response) { db.getPlayers().then(function(players){

我正在使用MongoDB和Node.JS,我正在尝试从我的MongoDB中获取数据并显示到我的html页面中,我正在使用下面的代码,但是这只是以不特定的顺序返回所有条目:

server.js

// This is for getting the list of all players from my DB
app.get("/getPlayers", function(request, response) {
    db.getPlayers().then(function(players){
        console.log(players);
        response.send(players);
    });
});
var Player = mongoose.model("Player", {name: String, score: Number}); 

    module.exports.Player = Player;
leadership.html

<script>
    $(function() {
        $.get("http://localhost:9000/getPlayers", {}, function (res) {
        let data = res;
        console.log(res);

        for (i = 0; i < data.length; i++) {
            let name = data[i].name;
            let score = data[i].score;

            console.log(data[i].name);


            $("#leadership").append("<tr><td class=\"name\">"
                + data[i].name + "</td><td class=\"score\">" 
                + data[i].score + "</td></tr>");
         }
     });
});
</script>

但是,我的Chrome控制台返回一个
内部服务器错误500
。有人能指出我如何先按最大数排序,然后将结果限制为10吗?在数据库中有一个名为players的集合,其中包含namescore

db.js

// This is for getting the list of all players from my DB
app.get("/getPlayers", function(request, response) {
    db.getPlayers().then(function(players){
        console.log(players);
        response.send(players);
    });
});
var Player = mongoose.model("Player", {name: String, score: Number}); 

    module.exports.Player = Player;
试试这样的。 订单、排序和限制可以从前端传递,也可以在:标记后更改默认值

玩家是导入模型的,可以这样做,也可以在模型本身中使用方法

app.post('/api/players',(req,res)=>{
让订单=req.body.order?req.body.order:“-1”;
设sortBy=req.body.sortBy?req.body.sortBy:“\u id”;
let limit=req.body.limit?parseInt(req.body.limit):100;
球员。
查找()。
排序([[sortBy,order]])。
限制。
执行官((错误,玩家)=>{
if(err)返回res.status(400)。send(err);
res.status(200).json({
大小:玩家。长度,
球员
})
})
})
试试这样的方法。 订单、排序和限制可以从前端传递,也可以在:标记后更改默认值

玩家是导入模型的,可以这样做,也可以在模型本身中使用方法

app.post('/api/players',(req,res)=>{
让订单=req.body.order?req.body.order:“-1”;
设sortBy=req.body.sortBy?req.body.sortBy:“\u id”;
let limit=req.body.limit?parseInt(req.body.limit):100;
球员。
查找()。
排序([[sortBy,order]])。
限制。
执行官((错误,玩家)=>{
if(err)返回res.status(400)。send(err);
res.status(200).json({
大小:玩家。长度,
球员
})
})

})
你在哪个字段上排序?“我的Chrome控制台返回一个内部服务器错误500”-你的服务器日志怎么说?@SergioTulentsev它说
参考错误:分数没有定义
@prasad_u~我需要在分数字段上排序,然后在顶部有最高值,然后将这些结果限制为10?看这个。你在哪个字段排序?“我的Chrome控制台返回一个内部服务器错误500”-你的服务器日志怎么说?@SergioTulentsev它说
参考错误:分数没有定义
@prasad_u-我需要在分数字段排序,然后在顶部有最高值,然后将这些结果限制为10?看到了吗。可以通过,但不应该(至少不能以这种未检查的方式)。这样,你自己就可以打开应用程序进行DoS攻击。可以通过,但不应该通过(至少不能以这种未检查的方式)。这样,您自己就可以打开应用程序进行DoS攻击。