2013-06-27 42 views
0

我有3个MongoDB的类别:如何找到最近的frineds MongoDB的

  • 轨道(纬度,经度,created_at [日期时间],USER_ID);
  • users(user_id,...);
  • users_contacts(user_id,user_contact_id,...)。

我有一个user_id。 需要找到他的联系人(users_contacts)的最新位置,从当前位置(最近将位于结果的顶部)开始,按照距离排序。 如何创建MapReduce函数?感谢任何人可以提供一个C#示例

+0

你应该修复此帖子的标题以帮助其他人进行搜索 –

回答

0

你需要看一看近/ 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)