我在我的应用程序中得到了这个
...
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,但我仍然得到同样的错误。任何人都知道如何解决这个问题?
答案 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}}