#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. что вы уже сделали в своем вопросе, я объединил оба в ответе, вы можете проверить..