加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java-为什么Spring Data MongoDB在聚合管道中拒绝包含$的字段名

发布时间:2020-12-15 01:17:46 所属栏目:大数据 来源:网络整理
导读:使用Spring Data的ProjectionOperation类在MongoDB上创建聚合查询时,使用带有“ $”(例如test $)字符的字段会导致IllegalArgumentException 验证spring数据mongodb源时,我注意到在AggregationField类的构造函数中,对字段名称进行了清理. Fields.java Class p

使用Spring Data的ProjectionOperation类在MongoDB上创建聚合查询时,使用带有“ $”(例如’test $’)字符的字段会导致IllegalArgumentException

验证spring数据mongodb源时,我注意到在AggregationField类的构造函数中,对字段名称进行了清理. Fields.java Class

private static String cleanUp(String source) {

    if (Aggregation.SystemVariable.isReferingToSystemVariable(source)) {
        return source;
    }

    int dollarIndex = source.lastIndexOf('$');
    return dollarIndex == -1 ? source : source.substring(dollarIndex + 1);
}

MongoDB中字段的命名法不鼓励使用“ $”字符,否则这是Spring Data问题吗?

最佳答案
MongoDB官方驱动程序当前不支持的reference documentation clearly states:

IMPORTANT

The MongoDB Query Language cannot always meaningfully express queries over documents whose field names contain these characters (see SERVER-30575). Until support is added in the query language,the use of $and . in field names is not recommended and is not supported by the official MongoDB drivers.
{quote}

即Spring Data无法支持该功能,除非对此提供支持,以使其成为正式的Java驱动程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读