1
Current MongoDB文档状态:MongoDB中使用每收集一个以上地理空间索引以下
您可能只有每收集1个地理空间索引,现在。虽然 MongoDB可能允许创建多个索引,但此行为不支持 。因为MongoDB只能使用一个索引来支持单个查询,所以在大多数情况下,具有多个地理索引会产生不合需要的行为 。
然而,当我在集合中创建两个地理空间指数(用猫鼬),他们工作得很好:
MySchema.index({
'loc1': '2d',
extraField1: 1,
extraField2: 1
});
MySchema.index({
'loc2': '2d',
extraField1: 1,
extraField2: 1
});
我的问题是这样的:虽然它似乎工作,MongoDB的文件说,这可能“产生不良行为”。到目前为止,在测试或使用中都没有发现任何不受欢迎的东西。
我应该关心这个吗?如果答案是肯定的,那么你会推荐什么作为解决方法?
真棒笔记,谢谢!进一步探索这一点。有关解决方法的任何想法? – jsalonen
要么你可以使用两个集合,要么你可以将文档分成两部分 - 一个标志确定它是原始的“loc”还是“loc2”字段......不是很漂亮,但它可能适用于你。 – Derick
谢谢!我还有一个想法是使用包含两个位置的附加列表作为地理空间索引的缓存。但我得说话,最优化的解决方案将是能够使用两个地理空间索引...猜猜我没有奢侈品去做(尚)。 – jsalonen