Как заменить текст в разделенной вложенной строке в MongoDB

#mongodb #mongoose #mongodb-query

#mongodb #мангуст #mongodb-запрос

Вопрос:

примерное значение в БД: one-two-three.js

Нужно отформатировать так: один два три

Я разделил поле с помощью $split aggregate, но после этого как заменить «-» на » «?

replaceAll(«-«, » «)

 $push: {
  name: {$arrayElemAt:[{$split: ["$name" , "."]}, 0]},
}
 

Ответ №1:

Вы можете попробовать,

  • ваш проверенный код, $set , $split назовите с . помощью и получите первый элемент, используя $arrayElemAt
  • $reduce для повторения цикла name массива после преобразования строки формы с использованием $split
  • $concat чтобы объединить строку с пробелом и возвращаемым значением, это вернет дополнительный пробел в первой позиции строки и $substr удалит этот пробел в первой позиции
   {
    $set: {
      name: {
        $arrayElemAt: [{ $split: ["$file", "."] }, 0]
      }
    }
  },
  {
    $set: {
      name: {
        $substr: [
          {
            $reduce: {
              input: { $split: ["$name", "-"] },
              initialValue: "",
              in: { $concat: ["$value", " ", "$this"] }
            }
          },
          1,
          -1
        ]
      }
    }
  }
 

Игровая площадка

Комментарии:

1. Но он не разделяет «.js»

2. что вы уже сделали в своем вопросе, я объединил оба в ответе, вы можете проверить..