如果另一个字段以子字符串结尾,我想要一个带有值的字段,但如果它不是
,则我想要另一个字段我该怎么做?
示例(我省略了什么并不重要):
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:我不能在匹配中使用正则表达式过滤器,因为我需要两个文档来填充它们
答案 0 :(得分:0)
怎么样:
存储'Field1Reversed'字段,字符颠倒,然后使用:
$project: {
'HasSubstring': {$cond:[{$eq:[ 'gnirtsbus', {$substr:["$Field1Reversed",0,9]}] } ,true,false]}
}
使用substr有unicode含义,但如果需要,可以在你的app中解决这些问题(测量comparand的长度以获得正确的字节数)