如何找到最近的frineds MongoDb
本文关键字:frineds MongoDb 最近 何找 | 更新日期: 2023-09-27 18:20:06
我有3个MongoDb集合:
- tracks(lat,lon,created_at[datetime],user_id)
- users(user_id,…)
- users_contacts(user_id、user_contact_id…)
我有一个user_id。需要查找联系人的最新位置(users_contacts),按距离当前位置的远近排序(最近的将位于结果的顶部)。如何创建MapReduce函数?感谢任何能够提供C#样本的人。
您需要了解Near/geoNear功能
http://docs.mongodb.org/manual/reference/operator/near/
类似的东西
places.EnsureIndex(IndexKeys.GeoSpatial("loc"), IndexOptions.SetGeoSpatialRange(-500, 500));
var query = Query.Near("loc", 50, 50, 5);
var cursor = places.Find(query).SetLimit(20);
foreach (var hit in cursor) {
// process hit
}
现在,在您的情况下,您想查询users_contacts
var query = Query.And(Query.EQ("user_id", "<id>"),Query.Near("loc", x, y, r));
var cursor = users_contacts.Find(query)