我在使用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