fix: Parse.Query.distinct fails due to invalid aggregate stage 'hint' (#9295)

This commit is contained in:
Mohammad Ali
2024-10-22 21:51:58 +03:00
committed by GitHub
parent 5e1546e906
commit 5f66c6a075
2 changed files with 41 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
import ClassesRouter from './ClassesRouter';
import rest from '../rest';
import * as middleware from '../middlewares';
import Parse from 'parse/node';
import * as middleware from '../middlewares';
import rest from '../rest';
import ClassesRouter from './ClassesRouter';
import UsersRouter from './UsersRouter';
export class AggregateRouter extends ClassesRouter {
@@ -52,7 +52,7 @@ export class AggregateRouter extends ClassesRouter {
}
/* Builds a pipeline from the body. Originally the body could be passed as a single object,
* and now we support many options
* and now we support many options.
*
* Array
*
@@ -71,7 +71,7 @@ export class AggregateRouter extends ClassesRouter {
*
* body: {
* pipeline: {
* group: { objectId: '$name' },
* $group: { objectId: '$name' },
* }
* }
*
@@ -79,9 +79,11 @@ export class AggregateRouter extends ClassesRouter {
static getPipeline(body) {
let pipeline = body.pipeline || body;
if (!Array.isArray(pipeline)) {
pipeline = Object.keys(pipeline).map(key => {
return { [key]: pipeline[key] };
});
pipeline = Object.keys(pipeline)
.filter(key => pipeline[key] !== undefined)
.map(key => {
return { [key]: pipeline[key] };
});
}
return pipeline.map(stage => {