Я использую базу данных MongoDB в качестве временной таблицы для некоторых операций импорта. Я хочу выполнить хранимую процедуру на данных, прежде чем она будет постоянно сохраняться в нашей базе данных SQL. Это зависит от использования карты внутри Mongo для замены 4 символов из поля int.MongoDB Выберите внутри Обновить запрос
Я не совсем уверен, как это сделать в Монго, но если эти таблицы были внутри SQL запрос будет выглядеть следующим образом:
UPDATE data SET number =
IF LEN(number) >= 4 BEGIN
CONCAT(SUBSTRING(number, 1, (LEN(number)-4)), (SELECT replacement FROM mapping WHERE original=SUBSTRING(number, (LEN(number)-4), 4))
END ELSE number
Значение, если число состоит из 4 цифр или больше, замените последние 4 цифры с заменой в таблице сопоставления, иначе ничего не делать.
Может ли кто-нибудь помочь мне перевести это в запрос MongoDB (я использую C# в случае, если это имеет значение)? Я действительно потерялся прямо сейчас.
Я думаю, вы должны написать 'LEN (число) - 4' вместо' LEN (число - 4) 'внутри запроса. – Shad
И второй вызов 'SUBSTRING' не принимает ни одного строкового параметра. – Shad
Да, вы правы, исправили эти проблемы. – SomeoneRandom