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

mongodb评估字符串是否以另一个子字符串结尾,mongodb,aggregation-framework,Mongodb,Aggregation Framework,如果另一个字段以子字符串结尾,我想用一个值投影一个字段,如果不是,则用另一个值投影 我该怎么做 示例(我省略了不重要的内容): 文件1: { 'Field1': 'A perfect normal string' } 文件编号: { 'Field1': 'This one ends with my substring' } 理想是: $project: { 'HasSubstring': {$cond: [{$regex: 'substring$'}, true,

如果另一个字段以子字符串结尾,我想用一个值投影一个字段,如果不是,则用另一个值投影

我该怎么做

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

文件1:

{
    'Field1': 'A perfect normal string'
}
文件编号:

{ 
    'Field1': 'This one ends with my substring'
}
理想是:

$project: {
    'HasSubstring': {$cond: [{$regex: 'substring$'}, true, false]}
}
但这不起作用,因为我们不能在$cond中使用$regex

有人能指给我看吗

非常感谢

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

如何:

存储“Field1Reversed”字段,并反转字符,然后使用:

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

使用substr有unicode含义,但如果需要,可以在应用程序中解决这些问题(测量comparand的长度以获得适当的字节substr)

我通常在应用程序中作为业务逻辑进行这种繁忙的工作,而不是试图让昂贵的DB做额外的工作。当然,但这并不是一个完整的管道如果我必须在我的业务逻辑中这样做,那么我就不需要mongo(因此我使用树和文件系统来保存信息)。问题是,一些mongo开发会告诉我,使用子文档我的需求将是微不足道的,但我会按照他们的建议,在我看来如何处理树,mongo(或另一个DB)为我提供了树的线性视图可能MongoDb不适合您的需要?你的具体问题以前已经解决过了。它只是不受支持。事实上,这是一个时间问题(至少是10gen人员争论的问题),他们告诉我,regex In a cond是计划好的,但不是哪个版本,但每次我与DB发生冲突时,我都会问自己这个问题,同时,感谢WiredPairie为您提供的时间