【问题标题】:Equivalent replace method SQL in mongoDB spring datamongoDB spring数据中的等效替换方法SQL
【发布时间】:2020-04-07 13:21:39
【问题描述】:

我正在spring data mongodb 中寻找一个看起来像这样的请求:

 ?#{ [2] == null ? { $where : 'true'} : { 'vehicle.immatriculation' : {'$regex' : {'$replaceAll':[2],'-',''}, $options : 'x'} } }"

是否可以提出这种类型的请求?我被卡住了,因为我找不到替换 SQL

的等价物

版本

SQL

    SELECT colonne1, colonne2, REPLACE(colonne3, '-', '')
    FROM table

【问题讨论】:

    标签: mongodb spring-boot mongodb-query spring-data-mongodb


    【解决方案1】:

    该功能还不存在。 SERVER-32314 是添加 $replaceOne$replaceAll 作为聚合运算符的功能请求。看起来这个请求可能会在下一个版本中出现,但它并没有被 MongoDB 4.2 淘汰

    该服务器票证还提供了一种解决方法。我将该示例改编为您的结构,但我对 Spring 不够熟悉,无法为您提供该语法。这里是 mongo shell javascript,也许其他人可以将它翻译成 Java。

    db.collection.aggregate([{$project:{
      _id:0,
      colonne1:1, 
      colonne2:1, 
      colonne3:{$let:{
         vars:{split:{$split:["$colonne3","-"]}},
         in:{$reduce:{
            input:{$slice:["$$split",1,{$size:"$$split"}]},
            initialValue:{$arrayElemAt:["$$split",0]},
            in:{$concat:["$$value","$$this"]}
         }}
      }}
    }}])
    

    【讨论】:

    • 感谢您的评论。在等待更新时,我已针对此问题使用了替代解决方案
    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2018-05-21
    • 2018-01-31
    相关资源
    最近更新 更多