我有一些以这种方式在MongoMapper中保存数据的模型
class WellIndex::Core
include MongoMapper::Document
key :well_name
key :surface_loc, Hash
ensure_index [[:surface_loc, '2dsphere']]
end
数据以这种方式存储
well.surface_loc#{:type =>“ Point”,:coordinates => [-90,10]}
我在 Mongoid 中看到您将地理数据存储到一个数组中。并且该类将转换为
class WellIndex::Core
include Mongoid::Document
field :well_name, type: String
field :surface_loc, Array
index({:surface_loc => '2dsphere'})
end
这样,由于数据是哈希,我将不得不将所有数据迁移到新字段,有没有办法我仍可以在 Mongoid 中使用相同的哈希数据强>?
答案 0 :(得分:0)
我发现我可以保持与上一篇文章中相同的模型和相同的数据,但是可以避免在运行测试时出错。
Mongo::Error::OperationFailure:
error processing query: ns=worker_test.well_indexesTree: $and
meas_depth $gt 4000
GEONEAR field=surface_loc maxdist=25 isNearSphere=0
应该创建索引,如果您正在使用rspec
before(:each) { WellIndex::Core.create_indexes }