我在使用Grails應用程序在MongoDB中發出通配符查詢時遇到了一些問題。來自grails/groovy的mongodb通配符查詢
基本上我現在正在做的方式是通過發出find
查詢與查詢參數數組:
db.log.find(criteria) -> where criteria is an array [testId:"test"]
這工作只要細如我嚴格查詢實際值。然而,爲了好玩,我不是一個通配符搜索試了一下:
db.log.find(criteria) -> this time critera = [testId:/.*te.*/]
然而,這將在Mongo的查詢日誌尋找爲後:
query: { query: { testId: "/.*te.*/" }
從而使得查詢不是通配符搜索,但而是將其作爲字符串查詢。 有沒有辦法解決這個問題,在某種意義上仍然使用這個查詢的概念?
在此先感謝!
這不會讓我從mongo控制檯運行任何東西。 db.log.find({testId:{$ regex:'/.*te.*/'}}) –
它仍然是mongo將查詢解釋爲字符串的相同問題,刪除'',db.log。 find({testId:{$ regex:/.*te.*/}})正常工作 –
@dunnless'db.log.find({testId:{$ regex:/.* te。* /}})'要成爲mongodb控制檯中的命令,但在Grails中,必須首先將參數放入BasicDBObject對象中。 – coderLMN