使用变量作为Map键MongoDB Groovy Query

时间:2017-04-13 13:53:04

标签: mongodb groovy

我有一个mongo db查询来获取一些数据,如下所示

collection.find(lastUpdated: ['$gte': startDate.toLong(), '$lt': endDate.toLong()], resource: ['$gt': limit]).findAll().toList()

resource是一个动态字段,其值可能如下: parameter1parameter2 ......等等。

我在这个查询中传递resource作为方法参数。

有人可以通过某种方式建议我可以动态使用resource而无需在我的查询中将其值(paramter1parameter2parameter3 ...)硬编码

1 个答案:

答案 0 :(得分:1)

是的,你几乎就在那里你只需要将它作为变量传递,并在()上使用Map语法来表明你使用变量作为键而不是文字值。

改变这个:

resource: ['$gt': limit]

到此:

(resource): ['$gt': limit]

完整查询:

def resource = "parameter1"; //or parameter2 ...
collection.find(lastUpdated: ['$gte': startDate.toLong(), '$lt': endDate.toLong()], (resource): ['$gt': limit]).findAll().toList()