使用 Spring Data 的ProjectionOperation类在 MongoDB 上创建聚合查询时,使用带有“$”(例如“test$”)字符的字段会导致IllegalArgumentException验证 spring 数据 mongodb 源时,我注意到在AggregationField类的构造函数中执行了字段名称的清理。Fields.java 类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 问题?
2 回答

跃然一笑
TA贡献1826条经验 获得超6个赞
这似乎是一个Spring数据Mongodb的问题......你的字段名应该是允许的。
您可以在字段名称中使用任何不特殊的 (UTF8) 字符(包含“.”或以“$”开头)。
您可以尝试使用BasicDBObject构建您的项目操作。这是一个示例:如何在 Spring Data MongoDB 中使用 $arrayElemAt 运算符
添加回答
举报
0/150
提交
取消