MongoDB 字符串截取 $substr

作者: 沧海2122537190 | 来源:发表于2019-09-26 08:39 被阅读0次

    $substr,$substrBytes,$substrCP是aggregate的管道操作符,主要可用在project中,
    $substr在版本3.4后最好使用$substrBytes

    substr

    db.getCollection("table_name").aggregate({
        $project: {
            "new_string": {
                $substr: [< string > , < start > , < length > ]
            }
        }
    })
    

    其中< string >是需截取的字符串,若为表内字段可用$加字段名。
    < start >截取开始的位置,为整数,整数从0开始。若数字为负数或大于< string >的长度,则返回空字符串""。
    < length >截取字符串长度,为整数。若数字为负数则返回< start >后的全部的字符串。

    substrBytes

    db.getCollection("table_name").aggregate({
        $project: {
            "new_string": {
                $substrBytes : [< string  expression >,< byte  index >,< byte  count >] 
            }
        }
    })
    

    其中< string expression >是需截取的字符串,若为表内字段可用$加字段名。
    < byte index >截取开始的位置,为整数,整数从0开始。若数字为负数或大于< string >的长度,则返回空字符串""。
    < byte count >截取字符串长度,为整数。若数字为负数则返回< start >后的全部的字符串。

    substrCP

    db.getCollection("table_name").aggregate({
        $project: {
            "new_string": {
                $substrCP:[< string  expression >,< code  point  index >,< code  point  count >]
            }
        }
    })
    

    其中< string expression >是需截取的字符串,若为表内字段可用$加字段名。
    < code point index >截取开始的位置,为整数,整数从0开始。若数字为负数或大于< string >的长度,则返回空字符串""。
    < code point count >截取字符串长度,为整数。若数字为负数则返回< start >后的全部的字符串。

    示例:

    1.截取字符串
    $substr$substrBytes结果相同,会将汉字的字符长度视为2。
    $substrCP将汉字的字符长度视为1。

    截取字符串

    2.截取字段内容

    截取字段内容

    相关文章

      网友评论

        本文标题:MongoDB 字符串截取 $substr

        本文链接:https://www.haomeiwen.com/subject/hnubjctx.html