mongodb $ near提供不正确的排序

时间:2018-09-21 16:58:25

标签: node.js mongodb mongoose

我正在将mongodb与mongoose一起使用,并且尝试使用$ near查询,并且看到一些奇怪的行为。mongodb的结果响应应按距离排序,如docs中所述:< / p>

  

这些运算符返回按距离排序的文档

响应实际上是(kinda)排序的,但是不准确。

这是我的模式:

df2 <- structure(list(date = structure(17721, class = "Date"), jpy_usd = 0.00904, 
    hkd_usd = 0.127416, krw_usd = 9e-04), row.names = c(NA, -1L
), class = c("tbl_df", "tbl", "data.frame"), .Names = c("date", 
"jpy_usd", "hkd_usd", "krw_usd"))

我现在有一些实例,我正在尝试查询并根据提供的点对结果进行排序。

这是我的查询

../../images/trades/general/banners/header3.jpg

此查询可以正常运行,但响应未正确排序。我已经遍历了响应,并使用hypot手动计算了到我的点的距离,结果日志如下所示:

let VideoSchema = mongoose.Schema({
    .
    .
    .
    loc: {
        type: {
            type: String,
            enum: ['Point'],
            required: true,
        },
        coordinates: {
            type: [Number],
            required: true,
        },
    },
    .
    .
    .
});
VideoSchema.index({'loc': '2dsphere'});

如您所见,距离在增加,但以一种(非常)奇怪的方式。我不知道我做错了什么,但是我基本上认为mongodb排序中使用的距离不是基于我在查询中提供的点。它就在那个位置附近!!!

有什么想法吗?

0 个答案:

没有答案