mongodb评估字符串是否以另一个子字符串结尾

时间:2013-03-06 16:53:29

标签: mongodb aggregation-framework

如果另一个字段以子字符串结尾,我想要一个带有值的字段,但如果它不是

,则我想要另一个字段

我该怎么做?

示例(我省略了什么并不重要):

Doc 1:

{
    'Field1': 'A perfect normal string'
}

Doc N:

{ 
    'Field1': 'This one ends with my substring'
}

理想将是:

$project: {
    'HasSubstring': {$cond: [{$regex: 'substring$'}, true, false]}
}

但这不起作用,因为我们不能(????)在$ cond中使用$ regex

有人可以指点我吗?

非常感谢

PS:我不能在匹配中使用正则表达式过滤器,因为我需要两个文档来填充它们

1 个答案:

答案 0 :(得分:0)

怎么样:

存储'Field1Reversed'字段,字符颠倒,然后使用:

$project: {
    'HasSubstring': {$cond:[{$eq:[ 'gnirtsbus', {$substr:["$Field1Reversed",0,9]}] } ,true,false]}
}

使用substr有unicode含义,但如果需要,可以在你的app中解决这些问题(测量comparand的长度以获得正确的字节数)