Mongodb 具有另一个多键索引的地理空间索引。。。有什么解决办法吗?
我有一个像下面这样的收藏。我想索引“location”和“product_list.id”。MongoDB似乎只允许在文档中使用单个多键索引。有可能的工作吗Mongodb 具有另一个多键索引的地理空间索引。。。有什么解决办法吗?,mongodb,indexing,geospatial,mongodb-query,multikey,Mongodb,Indexing,Geospatial,Mongodb Query,Multikey,我有一个像下面这样的收藏。我想索引“location”和“product_list.id”。MongoDB似乎只允许在文档中使用单个多键索引。有可能的工作吗 { "location":[62.99932,71.23424], "product_list":[ {"id":"wf2r34f34ff33", "price": "87.99"}, {"id":"f334r3rff43ff", "price": "21.00"}, {"
{
"location":[62.99932,71.23424],
"product_list":[
{"id":"wf2r34f34ff33", "price": "87.99"},
{"id":"f334r3rff43ff", "price": "21.00"},
{"id":"wf2r34f34ffef", "price": "87.99"}
],
}
诚然,您只能在集合的单个复合索引中对单个数组类型的字段进行索引,但您似乎在谈论“地理空间”查询,这有点不同。这一点都没有错:
db.collection.ensureIndex({“位置”:“2d”,“产品列表”:1})
对于复合索引来说,这是一种完全有效的形式
所以它看起来像一个数组,但在本例中MongoDB的处理方式不同。太好了!谢谢你,尼尔!你能给我指一下任何文档或博客,其中给出了详细的解释。我会试试这个。文档中有一些语句,比如说不能将地理空间查询与其他特殊查询(如文本)相结合。但在复合词中添加另一个简单的键并没有错。所以,在复合中生成多键索引并不是问题。简单的测试是,索引创建不会导致错误,实际上可以在查询中使用。例如,如果您尝试
位置:1,产品列表:1
,您将得到一个错误。