Gor*_*ran 5 mongoose mongodb node.js
我的应用程式中有这个
...
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
}
});
Run Code Online (Sandbox Code Playgroud)
但是使用切片操作时出现错误,错误是:
Error: slice() must be used after where() when called with these arguments
Run Code Online (Sandbox Code Playgroud)
我试图用.where替换.find,但是我仍然遇到相同的错误。有人知道如何解决这个问题吗?
slice()需要path指定的,可以在较早的where()调用中或在slice()调用本身中设置。 从文档:
query.slice('comments', 5)
// or...
query.where('comments').slice(5)
Run Code Online (Sandbox Code Playgroud)
基本上你需要说明你正在切片。从您的示例中不清楚,但假设您的Score模型有一个数组players- 您可以使用以下slice()方式仅返回每个score通过的前 5 个玩家:
Score.find().slice('players', 5).exec(function(err, scores) {
...
Run Code Online (Sandbox Code Playgroud)
...
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
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4909 次 |
| 最近记录: |