1

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

我怎样才能做到这一点?

示例(我省略了不重要的内容):

文件 1:

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

文件号:

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

理想是:

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

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

任何人都可以指点我,好吗?

非常感谢

PS:我不能在比赛中使用正则表达式过滤器,因为我需要两个文档来对它们进行分组

4

1 回答 1

0

怎么样:

存储 'Field1Reversed' 字段,字符反转,然后使用:

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

使用 substr 存在 unicode 含义,但如有必要,可以在您的应用程序中解决这些问题(测量比较的长度以获得正确的 substr # of bytes)

于 2013-04-15T17:08:21.713 回答