Mongodb基于动态字段和静态字段对文档进行排序
我正在尝试编写一个查询,以便在获取用户列表时,根据两个字段对用户进行排序 第一个是使用$geoNear查询计算的距离字段。 第二个字段是用户文档上的“流行度”字段 为简单起见,我想按“权重”算法排序,其中权重为Mongodb基于动态字段和静态字段对文档进行排序,mongodb,Mongodb,我正在尝试编写一个查询,以便在获取用户列表时,根据两个字段对用户进行排序 第一个是使用$geoNear查询计算的距离字段。 第二个字段是用户文档上的“流行度”字段 为简单起见,我想按“权重”算法排序,其中权重为0.7*距离+0.3*流行度 我如何在mongodb中实现一些东西?在mongodb中是否可以有效地实现这一点?您可以使用聚合管道来实现这一点。您可以使用不同的阶段来处理此问题,例如,执行地理空间查询并存储计算的距离,然后执行投影以计算权重,最后对新生成的权重字段执行排序 至于有效地做到这
0.7*距离+0.3*流行度
我如何在mongodb中实现一些东西?在mongodb中是否可以有效地实现这一点?您可以使用
聚合
管道来实现这一点。您可以使用不同的阶段来处理此问题,例如,执行地理空间查询并存储计算的距离,然后执行投影以计算权重
,最后对新生成的权重
字段执行排序
至于有效地做到这一点,那是不会发生的。只有当您有一组已知的值,并且在运行时计算之前,您想要的值将是未知的,效率才会发生。只要确保您的$geoNear
查询返回的文档子集在大小上不会有问题,您就可以了