我正在将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排序中使用的距离不是基于我在查询中提供的点。它就在那个位置附近!!!
有什么想法吗?