javascript - MongoDB/Mongoose 在您之前查找结果数量

标签 javascript mongodb mongoose

假设我有一个名为“points”的 Mongoose 模型。我用列名“points”订购它。并通过将我的用户 ID 传递给文档列名称用户 ID 来查找我的文档。

我怎样才能找到某些信息,例如“有 xx 人比你优秀?”

在这种情况下,有多少文件的分数比你高?

需要“循环”多少次搜索才能找到与您的文档匹配的内容?

最佳答案

查询用户的积分,然后查询积分高于此的用户数。

Points.findOne({userId: userId}, (err, doc) => {
    Points.count({points: {$gt: doc.points}}, (err, count) => {
        // do something with count...
    });
});

为了可扩展的性能,您需要分别索引 userIdpoints。在您的架构中:

userId: {type: ObjectId, index: true},
points: {type: Number, index: true},
...

这应该比任何 map-reduce 解决方案都要快。

关于javascript - MongoDB/Mongoose 在您之前查找结果数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39626999/

相关文章:

javascript - 如何在 XSLT 文档中的 javascript 中使用 AND 运算符

javascript - 如何将 vue 应用程序包含在另一个 vue 应用程序中?

mongodb - 如何在 Mongodb 的字段中查找子字符串

MongoDB : Check if a point is inside a stored polygon

javascript - MongoDB 在带有附加字段的对象数组上聚合 $lookup

javascript - 摆脱切换时的打嗝现象

javascript - 在 Angularjs 中使用按键调用函数

swift - Perfect + Mongo 项目在 ubuntu 上构建错误

javascript - nodejs - Mongoose 不会因 Uri 损坏而引发错误

javascript - Node js Mongoose 按日期查询