mongodb评估字符串是否以另一个子字符串结尾
如果另一个字段以子字符串结尾,我想用一个值投影一个字段,如果不是,则用另一个值投影 我该怎么做 示例(我省略了不重要的内容): 文件1: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,
{
'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为您提供的时间