Обновить документ в MongoDB с помощью регулярного выражения

1
9

В исходном codeе Typescript на Nodejs с использованием MongoClient мне нужно найти поле ("provider", объявленное как строка) с регулярным выражением, а затем обновить это поле:

Проблема здесь в том, что у меня ошибка

очевидно, потому что компилятор обрабатывает "provider" как regExpr в наборе, а не как строку, как изначально объявлено. "updatePromise" — это оболочка для "updateMany":

Я использую (да, библиотеки не обновлены):

 await updatePromise(
        metadata_collection,
        {
            provider: { $regex: new RegExp(`^${provider}$`, "i") },
            code
        },
        {
            $set:
                provider.toLowerCase() === "eurostat"
                    ? { ...allEurostatMetadata, provider }
                    : { ...metaData, provider }
        },
        true,
        migrationFlowsProxy
    );
 Type 'string' is not assignable to type '{ $regex: RegExp; }'.ts(2322)
function updatePromise<T>(
    collection: string,
    filter: Query<T>,
    updateParams: UpdateQuery<T>,
    upsert = false,
    proxy = _mongoProxy
): Promise<UpdateResult | Document>
[email protected][email protected]
Никандр
Вопрос задан26 июля 2024 г.

1 Ответ

2
Влас
Ответ получен13 сентября 2024 г.

Ваш ответ

Загрузить файл.