如何在猫鼬中使用.slice

时间:2014-06-25 14:32:36

标签: node.js mongodb mongoose

我在我的应用程序中得到了这个

...
Score.find({ match: {$in: ids}} )
     .sort([[score_sort, 'descending']])
     .slice([skip, limit])
     .exec(function(err, scores) {
    if (err || !scores) {
        throw err;
    } else {
        // do something cool
    }
});

但是我使用切片操作时出错,错误是:

Error: slice() must be used after where() when called with these arguments

我试过用.where替换.find,但我仍然得到同样的错误。任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

...

Score.find({ match: {$in: ids}} )
     .sort([[score_sort, 'descending']])
     .skip(skip)
     .limit(limit)
     .exec(function(err, scores) {
    if (err || !scores) {
        throw err;
    } else {
        // do something cool
    }
});

答案 1 :(得分:2)

slice()需要指定path,可以在之前的where()来电或slice()来电中进行设置。 From the docs

query.slice('comments', 5)
// or...
query.where('comments').slice(5)

基本上你需要说明你正在切片的 。从您的示例中不清楚,但想象您的Score模型有一个players数组 - 您可以使用slice()仅返回每个score的前5个玩家Score.find().slice('players', 5).exec(function(err, scores) { ... 1}}通过:

{{1}}