#mongodb #mongodb-query
Вопрос:
Мне нужно изменить строку свойства. Мне просто нужно изменить те, на которых есть место.
Неверный Url: «url.com манекен/»
Хороший Url: «url.com/dummy/»
Фактический:
{
test: "test1",
Attach: [{
Type: "img",
Url: "https://url.com dummy/"
},
{
Type: "img",
Url: "https://url.com/dummy/"
},
{
Type: "img",
Url: "https://url.com dummy/"
},
{
Type: "img",
Url: "https://url.com/dummy/"
}]
}
Ожидаемый:
{
test: "test1",
Attach: [{
Type: "img",
Url: "https://url.com/dummy/"
},
{
Type: "img",
Url: "https://url.com/dummy/"
},
{
Type: "img",
Url: "https://url.com/dummy/"
},
{
Type: "img",
Url: "https://url.com/dummy/"
}]
}
Как вы можете видеть, свойства, которые мне нужно изменить, находятся внутри массива.
Мне нужен скрипт для проверки во всей коллекции.
Спасибо вам за вашу помощь!
Ответ №1:
Вы можете использовать $regex
конвейер агрегирования для поиска документов с пробелом. Затем используйте $replaceAll
для замены пробела косой чертой. Наконец $merge
, верните результат в исходную коллекцию.
Вот игровая площадка Монго для вашей справки.