gpt4 book ai didi

Mongodb $near 二级排序顺序

转载 作者:可可西里 更新时间:2023-11-01 10:00:44 27 4
gpt4 key购买 nike

将 $near 与 mongodb 结合使用,按距离返回结果。有没有办法知道(或指定)距离匹配时的排序顺序?

例如,如果我请求 10 个文档并且它们的距离都相同,然后请求另外 10 个文档并且它们与第一组的距离也相同,我可以在哪个字段上排序以确保排序顺序是总是一样吗?

最佳答案

$near$geoNear 按距离排序,对于与输入点距离相同的事物,没有定义顺序。您可以使用带有 $geoNear 的聚合来根据距离 + 另一个字段进行排序以确保一致的顺序:

db.test.aggregate([
{ "$geoNear" : {
"near" : { "type" : "Point", "coordinates" : [-73, 40] },
"distanceField" : "dist",
"maxDistance" : 2,
"spherical" : true
} },
{ "$sort" : { "dist" : 1, "_id" : 1 } }
])

$sort 阶段将无法使用索引,但希望性能不会太差,因为结果已经按 dist 排序。

关于Mongodb $near 二级排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29241757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com