2013-06-27 90 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)