0

我正在使用mongomatic gem

以下是索引列表:

Address.collection.index_information #=>
{"_id_"=>
  {"v"=>1, "key"=>{"_id"=>1}, "ns"=>"downloader_test.proxies", "name"=>"_id_"},
 "address_1"=>
  {"v"=>1,
   "key"=>{"address"=>1},
   "unique"=>true,
   "ns"=>"downloader_test.proxies",
   "name"=>"address_1"},
 "randomizer_1"=>
  {"v"=>1,
   "key"=>{"randomizer"=>1},
   "ns"=>"downloader_test.proxies",
   "name"=>"randomizer_1",
   "2d"=>true}}

当我尝试在查询中使用 $near 运算符时,我收到了这样的错误:

Address.collection.find_one('randomizer' => { '$near' => [129, 0] }) #=>

Mongo::OperationFailure: can't find any special indices: 2d (needs index), 
2dsphere (needs index)

我不明白为什么它不起作用,它有随机发生器的索引但不能使用它。

可能是什么问题?

4

2 回答 2

1

当您的位置数组的值作为字符串而不是浮点数导入时,也会发生这种情况。确保您的种子带有 .to_f 或者您没有将值设置为字符串。

于 2013-10-13T09:17:14.747 回答
0

问题在于设置索引

代替

Address.collection.create_index("randomizer", '2d' => true)

应该是

Address.collection.create_index("randomizer" => '2d')
于 2013-08-30T17:48:18.377 回答