gpt4 book ai didi

mongodb - 如何使用 $geoNear 在两个不同的子值中返回距离

转载 作者:行者123 更新时间:2023-12-04 10:36:46 26 4
gpt4 key购买 nike

我有这个查询:

db.places.aggregate([
{ "$geoNear" :
{ "near" :
{
"type" : "Point", "coordinates" : [23, 11]
}, "distanceField" : "distance",
"spherical" : true
}
},
{
"$sort" :
{ "distance" : 1 }
},
{
"$limit" : 10
}
])

哪个会返回
{
"_id":ObjectId("XXXX"),
"longitude":23.11,
"latitude":11.1995,
"distance":23.111995
}

但是,在 C# 等语言中,由于“距离”不是返回文档的 C# 类的一部分,因此会中断反序列化。

我怎样才能得到如下结果?
{
"document": {
"_id":ObjectId("XXXX"),
"longitude":23.11,
"latitude":11.1995
},
"distance":23.111995
}

谢谢你的帮助

最佳答案

您可以运行 $project reshape 您的聚合结果。 $$ROOT表示作为输入传递到管道阶段的文档:

db.places.aggregate([
{ "$geoNear" : { "near" : { "type" : "Point", "coordinates" : [23, 11] }, "distanceField" : "distance", "spherical" : true } },
{ "$sort" : { "distance" : 1 } },
{ "$limit" : 10 },
{ "$project:": { "document": "$$ROOT", "distance": 1 } },
{ "$project": { "document.distance": 0, "_id": 0 } }
])

关于mongodb - 如何使用 $geoNear 在两个不同的子值中返回距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60141445/

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