首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图限制我的结果和排序我的数据,从MongoDB使用NodeJS

试图限制我的结果和排序我的数据,从MongoDB使用NodeJS
EN

Stack Overflow用户
提问于 2020-01-01 14:25:04
回答 1查看 162关注 0票数 0

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

server.js

代码语言:javascript
运行
复制
// 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);
    });
});

leadership.html

代码语言:javascript
运行
复制
<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>

在查看了W3学校之后,我尝试将代码修改为:

代码语言:javascript
运行
复制
db.getPlayers().sort().limit(10).then(function(players)

然而,我的Chrome控制台带回了一台internal server error 500。有人能指出我怎样才能先按最大数字排序,然后将结果限制为10吗?在数据库中有一个名为players的集合,它包含namescore

db.js

代码语言:javascript
运行
复制
var Player = mongoose.model("Player", {name: String, score: Number}); 

    module.exports.Player = Player;
EN

Stack Overflow用户

回答已采纳

发布于 2020-01-01 14:49:45

试试这样的东西。顺序、排序和限制可以从前端传递,或者在“标记”之后更改默认值。

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

代码语言:javascript
运行
复制
app.post('/api/players',(req,res)=>{

    let order = req.body.order ? req.body.order : "-1";
    let sortBy = req.body.sortBy ? req.body.sortBy : "_id";
    let limit = req.body.limit ? parseInt(req.body.limit) : 100;      

    Players.
    find().
    sort([[sortBy,order]]).
    limit(limit).
    exec((err,players)=>{
        if(err) return res.status(400).send(err);
        res.status(200).json({
            size: players.length,
            players
        })
    })
})

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59553312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档