1
我是新來的MongoDB,我有以下問題:Grails的MongoDB的指數嵌入式字符串列表
class Venue {
String name
List<String> tags
static mapWith = "mongo"
static mapping = {
tags index:true
}
new Venue(name: 'Test1', tags:['abc', 'def']).save()
new Venue(name: 'Test2', tags:['abc', 'ghi']).save()
現在我想查詢與特定的標籤場地。
def venues = Venue.getByTag(['def']);
不幸的是,查詢不起作用。有更好的方法嗎?
現在我知道如何與一個特定的標籤獲得場地: 高清場館= {Venue.withCriteria EQ 「標籤」,「高清」 }
我怎樣才能發現是否該指數將使用?
會發生什麼,如果你查詢中使用getByTags(複數)?您是否通過從shell中查詢數據來確認數據實際上是在Mongo中? – Ryan 2011-12-27 17:35:45
我得到以下異常: groovy.lang.MissingMethodException:沒有方法的簽名:com.foo.Venue.getByTag()適用於參數類型:(java.util.ArrayList)values:[[def]] 可能解決方案:getTags(),setTags(java.util.List) 消息:groovy.lang.MissingMethodException:方法沒有簽名:com.foo.Venue.getByTag()適用於參數類型:(java.util.ArrayList)值:[[def]] 可能的解決方案:getTags(),setTags(java.util.List) 我認爲這將是一個很大的優勢,使用MongoDB,如果我可以索引標籤,而不必做一個域OBJ。收集標籤。 – user1117605 2011-12-28 13:38:12
我真的不知道GORM,但我猜你讀過這個文檔? http://grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20(GORM).html MongoDB絕對支持你正在嘗試做的事情,並且我認爲GORM也是如此,它是隻是找到語法的問題。 – Ryan 2011-12-28 14:35:39