MongoDB に地理空間的な場所と別の用語 (タグやカテゴリなど) を照会するにはどうすればよいですか? 私は次の基準を試しました
searchResults = Company.withCriteria {
withinCircle( [50d,8.5d], 60 )
inList('tags', tagName)
}
しかし、「withinCircle」は基準に実装されていないようです。別のテクニックはありますか?動的ファインダー「findAllBy...And...」の使用も機能しませんでした。
Company.findAllByTagsAndLocationWithinCircle( tagName, [ [50d, 8.5d], 60 ] )
(どちらも「groovy.lang.MissingMethodException: メソッドの署名がありません...」というエラーが表示されます。)
何か見落としがありますか、それとも低レベル API (gmongo) などを使用する方法はありますか?
ドメイン クラスは次のようになります。
class Company {
ObjectId id
Set tags = [] // a set of ObjectID referencing Tags
List<String> tagList = new ArrayList<String>() // a list of names from the Tags
}
class Tags {
ObjectId id
Set companies = [] // a set of ObjectID referencing Companies
}
ところで: Company.tags と Company.tagList は同期しており、テストにのみ使用されます (タグから始めましたが、tagList が検索に役立つと思いました)