1
我正在使用聚合来查询用户。每个后续请求都使用$ skip获取下一组结果,如下所示。
var aggPipeline = [
locationMatch,
userToUsersMatch,
usersToUserMatch,
{
$skip:cursor
},
{
$limit:perRequest
}
]
这工作正常,并返回用户,直到没有剩下要返回。当我在流水线中添加$ sort时,$ skip似乎停止工作,并且在每个后续请求中都会返回重复数据(即使光标/偏移量正在递增)。
aggPipeline = [
locationMatch,
userToUsersMatch,
usersToUserMatch,
{
$sort:{lastActive:-1}
},
{
$skip:cursor
},
{
$limit:perRequest
}
]
我试图通过lastActive领域的所有结果进行排序,然后返回他们,跳过偏移量为已经返回了什么。我不明白为什么$ sort会导致重复数据在随后的调用中返回 - 它并不总是重复前一个请求的重复,但可以每隔一段时间附加一个用户并删除第一个用户。
任何人都知道这里发生了什么?
非常感谢。