В исходном 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 г.