使用 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
提交
取消