0

有没有办法以类似于正则表达式中的捕获组的方式返回集合中的一部分值?例如,如果我有如下值:

MyKey: "PrefixDataIDontCareAbout-DataIDoCareAbout-OtherDataIDontCareAbout"

有没有办法使用正则表达式或其他方法只返回DataIDoCareAbout部分?子字符串不起作用,因为我需要提取的数据比固定范围的字符更复杂。这需要在查询级别完成,因为我需要将它们分组为不同的,因此相同的值只会显示一次。

任何提示都会很棒!

4

3 回答 3

1

不,并且很大程度上需要这样做表明您的数据模型中存在问题,您最好重构您的模型以将DataIDoCareAbout 保留为单独的,也许是可索引的键。

于 2012-11-16T15:47:27.993 回答
0

不是正则表达式样式没有。

只有$substr内置在聚合框架中的命令在这里有用,但是这只运行在字符串中字符的整数位置上。

根据您的查询,我也不会对此进行正则表达式。如果您通过其他字段限制查询,那么它应该没问题,即 user_id 和正则表达式,但是使用正则表达式,如您必须使用的无前缀格式,可能会非常慢。

于 2012-11-16T15:48:36.947 回答
0

一种解决方案是创建将运行多个查询的 javascript 脚本:首先,它能够获取“ DataIDoCareAbout ”部分,然后,它将运行不同的和您真正需要使用结果的其他内容。

于 2012-11-16T18:56:05.197 回答