【问题标题】:How to find nearest frineds MongoDb如何找到最近的朋友 MongoDb
【发布时间】:2013-06-25 06:48:25
【问题描述】:

我有 3 个 MongoDb 集合:

  • 轨道(纬度、经度、created_at [日期时间]、用户 ID);
  • 用户 (user_id, ...);
  • users_contacts (user_id, user_contact_id, ...)。

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

【问题讨论】:

  • 你应该修复这篇文章的标题以帮助其他搜索者

标签: c# mongodb geospatial geo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多