我如何在mongodb $ near中进行查询和排序

时间:2019-01-14 23:05:07

标签: node.js mongodb

我是mongodb的新手,我的排序和查询遇到了一个奇怪的问题。

现在我正在使用 paginate(mongoose-paginate)一个用于mongoose的插件

这是我的收藏

One: { 
level: Number,
random:[Number]
}

所以问题是排序弄乱了我的查询,当我评论排序的结果或多或少是正确的时,我的随机数是正确的,但也希望级别排序但总是在进行排序比搜索更重要。

不可能吗?请一些帮助。

我的代码是:



const config = {

            select: 'level random',
            page:parseInt(page),
            limit: parseInt(perPage),
            sort: '-level'
        };
await One.paginate({ $near : [Math.random(), 0] },config);

&math.random = 0.2和-level

的结果
{
level:2, random:[0.7268446184677886,0],
level:2, random:[0.301999760447198,0],
level:1, random:[0.3970620502264359,0],

}

具有math.random = 0.2,并且没有-level 这对随机变量来说是完美的选择,但我也希望级别排序

不正确*

{

level:2, random:[0.301999760447198,0],
level:1, random:[0.3970620502264359,0],
level:2, random:[0.7268446184677886,0],

}

正确*

{

level:2, random:[0.301999760447198,0],
level:2, random:[0.7268446184677886,0],
level:1, random:[0.3970620502264359,0],


}

**我想要的随机数= 0.2和-level **

{

level:2, random:[0.301999760447198,0],
level:2, random:[0.7268446184677886,0],
level:1, random:[0.3970620502264359,0],

}

**我想要的随机数= 0.8和-level **

{
level:2, random:[0.7268446184677886,0],
level:2, random:[0.301999760447198,0],
level:1, random:[0.3970620502264359,0],

}

0 个答案:

没有答案