Skip to content

Commit c36ef99

Browse files
authored
Fix Aggregate Match Pointer (#4643)
1 parent 3acb3e7 commit c36ef99

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

spec/ParseQuery.Aggregate.spec.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ const masterKeyOptions = {
1313
json: true
1414
}
1515

16+
const PointerObject = Parse.Object.extend({
17+
className: "PointerObject"
18+
});
19+
1620
const loadTestData = () => {
1721
const data1 = {score: 10, name: 'foo', sender: {group: 'A'}, views: 900, size: ['S', 'M']};
1822
const data2 = {score: 10, name: 'foo', sender: {group: 'A'}, views: 800, size: ['M', 'L']};
@@ -448,8 +452,8 @@ describe('Parse.Query Aggregate testing', () => {
448452
});
449453

450454
it('match pointer query', (done) => {
451-
const pointer1 = new TestObject();
452-
const pointer2 = new TestObject();
455+
const pointer1 = new PointerObject();
456+
const pointer2 = new PointerObject();
453457
const obj1 = new TestObject({ pointer: pointer1 });
454458
const obj2 = new TestObject({ pointer: pointer2 });
455459
const obj3 = new TestObject({ pointer: pointer1 });
@@ -618,8 +622,8 @@ describe('Parse.Query Aggregate testing', () => {
618622
});
619623

620624
it('distinct pointer', (done) => {
621-
const pointer1 = new TestObject();
622-
const pointer2 = new TestObject();
625+
const pointer1 = new PointerObject();
626+
const pointer2 = new PointerObject();
623627
const obj1 = new TestObject({ pointer: pointer1 });
624628
const obj2 = new TestObject({ pointer: pointer2 });
625629
const obj3 = new TestObject({ pointer: pointer1 });

src/Adapters/Storage/Mongo/MongoStorageAdapter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ export class MongoStorageAdapter implements StorageAdapter {
567567
if (stage.$match) {
568568
for (const field in stage.$match) {
569569
if (schema.fields[field] && schema.fields[field].type === 'Pointer') {
570-
const transformMatch = { [`_p_${field}`] : `${className}$${stage.$match[field]}` };
570+
const transformMatch = { [`_p_${field}`] : `${schema.fields[field].targetClass}$${stage.$match[field]}` };
571571
stage.$match = transformMatch;
572572
}
573573
if (field === 'objectId') {

src/Routers/PurgeRouter.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import PromiseRouter from '../PromiseRouter';
22
import * as middleware from '../middlewares';
3+
import Parse from 'parse/node';
34

45
export class PurgeRouter extends PromiseRouter {
56

0 commit comments

Comments
 (0)