remove the use of aggregation for documentDB compatibility

This commit is contained in:
Maidul Islam
2023-08-27 14:41:35 -04:00
parent d8094b2ab1
commit ef1b75d890
+34 -27
View File
@@ -540,20 +540,26 @@ export const backfillIntegration = async () => {
}; };
export const backfillServiceTokenMultiScope = async () => { export const backfillServiceTokenMultiScope = async () => {
await ServiceTokenData.updateMany( const documentsToUpdate = await ServiceTokenData.find({ scopes: { $exists: false } });
for (const doc of documentsToUpdate) {
// Cast doc to any to bypass TypeScript's type checks
const anyDoc = doc as any;
const environment = anyDoc.environment;
const secretPath = anyDoc.secretPath;
if (environment && secretPath) {
const updatedScopes = [
{ {
scopes: { environment: environment,
$exists: false secretPath: secretPath
} }
}, ];
[
{ await ServiceTokenData.updateOne({ _id: doc._id }, { $set: { scopes: updatedScopes } });
$set: {
scopes: [{ environment: "$environment", secretPath: "$secretPath" }]
} }
} }
]
);
console.log("Migration: Service token migration v2 complete"); console.log("Migration: Service token migration v2 complete");
}; };
@@ -649,24 +655,25 @@ export const backfillUserAuthMethods = async () => {
} }
); );
await User.updateMany(
const documentsToUpdate = await User.find({
authProvider: { $exists: true },
authMethods: { $exists: false }
});
for (const doc of documentsToUpdate) {
// Cast doc to any to bypass TypeScript's type checks
const anyDoc = doc as any;
const authProvider = anyDoc.authProvider;
const authMethods = [authProvider];
await User.updateOne(
{ _id: doc._id },
{ {
authProvider: { $set: { authMethods: authMethods },
$exists: true $unset: { authProvider: 1, authId: 1 }
},
authMethods: {
$exists: false
} }
}, );
[
{
$set: {
authMethods: ["$authProvider"]
} }
},
{
$unset: ["authProvider", "authId"]
}
]
);
} }