【问题标题】:Indexing mongodb collection with 2dsphere indexes and IP address indexes使用 2dsphere 索引和 IP 地址索引索引 mongodb 集合
【发布时间】:2013-06-27 16:46:19
【问题描述】:

我是 MongoDB 新手,想创建一个数据库,其中存储在集合中的位置数据(经纬度)。我计划创建 GeoJSON 对象来存储这些数据。 我想知道是否可以在此集合上创建 2 个索引,其中一个是 2Dsphere 索引,另一个索引可以是任何其他值,例如在同一集合中唯一的 IP 地址? 如果这是可能的,我该如何创建这些索引?

【问题讨论】:

  • 我已经创建了一个集合并想要索引它,但不知道如何去做。 db.collection.ensureIndex(....) 将允许我在多个字段上创建索引,但我不知道如何创建具有 2dsphere 索引和 ipaddress 索引的索引。

标签: mongodb indexing geojson ip-geolocation


【解决方案1】:

这应该可行:

db.position.ensureIndex({"geoField.coordinates":"2dsphere","ipaddress":1})

看看this article

希望对你有帮助

【讨论】:

  • 谢谢 Antonio 在这种情况下,文档对象将如下所示,对吧?如果我错了,请纠正我 {geoField: {type:Point coordinates:[lat, long]} ipaddress: 122.0.0.7 connection: wi-fi }
  • 好吧,如果您的文档是这样的:{"geoField":{"type":"Point","coordinates":[lat,long]},"ipaddress":"122.0.0.7","connection":"wi-fi"} ... 那么您创建索引的语句将如下所示:db.collection.ensureIndex({"geoField.coordinates":"2dsphere"},{"ipaddress":1})
  • 如果 ensureIndex 格式不是:db.position.ensureIndex({"geoField":"2dsphere","ipaddress":1})
  • 是的,这是复合索引的正确语法。答案已编辑。谢谢。
猜你喜欢
  • 2013-06-09
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 2016-10-01
  • 2016-09-30
  • 2013-10-11
相关资源
最近更新 更多