首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保证复合2dsphere指数?

如何保证复合2dsphere指数?
EN

Stack Overflow用户
提问于 2014-06-11 01:40:06
回答 1查看 746关注 0票数 0

我读过这些文档,但不像预期的那样工作。我有以下文件:

代码语言:javascript
复制
{
    "_id" : ObjectId("5396e85c12f43f5d1bafbd13"),
    "author" : ObjectId("5396ca2b0fe95cf96599d881"),
    "location" : {
        "address" : "An address",
        "coordinates" : [ 
            12.52891929999998, 
            16.620259
        ],
        "type" : "Point",
        "postal_code" : "333",
        "country" : "Country",
    },
    "description" : "aDescription"
}

我在蒙戈有以下指数:

代码语言:javascript
复制
{
    "location" : "2dsphere"
}

如何创建复合索引?以下内容正确:

代码语言:javascript
复制
db.articles.ensureIndex( { location : "2dsphere", postal_code:1, country:1, address:1 } )

postal_code:1或-1是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 01:45:24

您的文件的正确格式是:

代码语言:javascript
复制
db.articles.ensureIndex({ 
   "location" : "2dsphere", 
   "location.postal_code":1, 
   "location.country":1, 
   "location.address":1 
})

因为这些字段是"location“子文档的一部分,所以您可以使用”点符号“指定完整的路径。

1-1的表示法分别代表升序和降序。

请注意,作为一个复合索引,这些字段在组合使用此索引的Geo空间查询时才真正对您有用,因为"2dsphere“索引元素是第一个。我建议,“国家”对于搜索“近”或“内”点的协调有些过于宽泛。但其他人可以有效地过滤结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24153401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档