0

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 が検索に役立つと思いました)

4

1 に答える 1