Skip to content

HTTP Query error on v5.2.4 'this._mongoCollection.countDocuments is not a function' #8127

Open
@Simone-cogno

Description

@Simone-cogno

New Issue Checklist

  • I am not disclosing a vulnerability.
    I am not just asking a question.
    I have searched through existing issues.
    I can reproduce the issue with the latest version of Parse Server.

Issue Description

Usgin the parse-dashbaord filtered queries are throwing errors.

Steps to reproduce

Send the following query to your parse-server server:

curl 'https://xxx.yyy.com/api/classes/XXX'
-H 'accept: /'
-H 'cache-control: no-cache'
-H 'content-type: text/plain'
-H 'pragma: no-cache'
-H 'sec-fetch-dest: empty'
-H 'sec-fetch-mode: cors'
-H 'sec-fetch-site: cross-site'
-H 'sec-gpc: 1'
--data-raw $'{"where":{"xxx":false},"limit":0,"count":1,"_method":"GET","_ApplicationId":"xxxx","_ClientVersion":"js3.4.2","_MasterKey":"xxxx","_InstallationId":"xxxx"}'
--compressed

Actual Outcome

Error 500

Expected Outcome

Data filtered.

Environment

NODE_ENV: production

Server

  • Parse Server version: 5.2.4
  • Operating system: Ubuntu 16.04.2 LTS
  • Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): AWS

Database

  • System (MongoDB or Postgres): MongoDB
  • Database version: 4.2.0
  • Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): AWS

Client

  • SDK (iOS, Android, JavaScript, PHP, Unity, etc): Javascript
  • SDK version: 3.4.2

Logs

21|Parse server | 2022-08-17 09:35 +00:00: 2022-08-17T09:35:10.014Z - error: Uncaught internal server error. this._mongoCollection.countDocuments is not a function level=error, message=Uncaught internal server error. this._mongoCollection.countDocuments is not a function, stack=TypeError: this._mongoCollection.countDocuments is not a function
21|Parse server | at MongoCollection.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoCollection.js:114:50)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:745:20
21|Parse server | From previous event:
21|Parse server | at MongoStorageAdapter.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:744:8)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1261:39
21|Parse server | From previous event:
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1220:14
21|Parse server | From previous event:
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1180:10
21|Parse server | From previous event:
21|Parse server | at DatabaseController.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1165:59)
21|Parse server | at RestQuery.runCount (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:686:31)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:215:19
21|Parse server | From previous event:
21|Parse server | at RestQuery.execute (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:214:6)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:52:20
21|Parse server | at invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at checkAndInvokeCallback (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:249:5)
21|Parse server | at Immediate._onImmediate (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:226:16)
21|Parse server | at processImmediate (internal/timers.js:464:21)
21|Parse server | at process.topLevelDomainCallback (domain.js:152:15)
21|Parse server | at process.callbackTrampoline (internal/async_hooks.js:128:24)
21|Parse server | From previous event:
21|Parse server | at Object.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:39:6)
21|Parse server | at ClassesRouter.handleFind (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:35:8)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:223:19
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/PromiseRouter.js:150:7
21|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
21|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
21|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:110:13)
21|Parse server | at Route.dispatch (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:91:3)
21|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:267:22
21|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:340:14)
21|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:356:14)
21|Parse server | at Function.proto.process_params (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:400:3)
21|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:261:10)
21|Parse server | at Function.proto.handle (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:166:3)
21|Parse server | at router (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:35:12)
21|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
21|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
21|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
21|Parse server | 2022-08-17 09:35 +00:00: TypeError: this._mongoCollection.countDocuments is not a function
21|Parse server | at MongoCollection.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoCollection.js:114:50)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:745:20
21|Parse server | From previous event:
21|Parse server | at MongoStorageAdapter.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:744:8)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1261:39
21|Parse server | From previous event:
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1220:14
21|Parse server | From previous event:
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1180:10
21|Parse server | From previous event:
21|Parse server | at DatabaseController.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1165:59)
21|Parse server | at RestQuery.runCount (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:686:31)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:215:19
21|Parse server | From previous event:
21|Parse server | at RestQuery.execute (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:214:6)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:52:20
21|Parse server | at invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at checkAndInvokeCallback (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:249:5)
21|Parse server | at Immediate._onImmediate (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:226:16)
21|Parse server | at processImmediate (internal/timers.js:464:21)
21|Parse server | at process.topLevelDomainCallback (domain.js:152:15)
21|Parse server | at process.callbackTrampoline (internal/async_hooks.js:128:24)
21|Parse server | From previous event:
21|Parse server | at Object.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:39:6)
21|Parse server | at ClassesRouter.handleFind (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:35:8)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:223:19
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/PromiseRouter.js:150:7
21|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
21|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
21|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:110:13)
21|Parse server | at Route.dispatch (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:91:3)
21|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:267:22
21|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:340:14)
21|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:356:14)
21|Parse server | at Function.proto.process_params (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:400:3)
21|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:261:10)
21|Parse server | at Function.proto.handle (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:166:3)
21|Parse server | at router (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:35:12)
21|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
21|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
21|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
21|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
21|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
7|Parse server | 2022-08-17 09:35 +00:00: (node:3419308) Warning: a promise was created in a handler at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:321:12 but was not returned from it, see http://goo.gl/rRqMUw
7|Parse server | at Function.Promise.cast (/home/ubuntu/co-parse-server/node_modules/bluebird/js/release/promise.js:225:13)
7|Parse server | 2022-08-17 09:35 +00:00: 2022-08-17T09:35:10.239Z - warn: undefined deviceId=1QchQ6eJIa, roomId=AkKp7JPFX7, homeId=Ar1ra382l5, roomName=to-configure, temp=28.94, correctionTemp=0, lastTemp=24.94, lastMeasurementTemp=28.94, lastRoomTempCorrection=0, lastColorCorrectionTemp=0, colorCorrectionPerMeasurementHeat=0, colorCorrectionPerMeasurementCool=0, differenceLastCorrectionToCurrentCorrection=0, colorCorrection=0, originalColorCorrection=0, level=warn
15|Parse server | 2022-08-17 09:35 +00:00: 2022-08-17T09:35:10.412Z - error: Uncaught internal server error. this._mongoCollection.countDocuments is not a function level=error, message=Uncaught internal server error. this._mongoCollection.countDocuments is not a function, stack=TypeError: this._mongoCollection.countDocuments is not a function
15|Parse server | at MongoCollection.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoCollection.js:114:50)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:745:20
15|Parse server | From previous event:
15|Parse server | at MongoStorageAdapter.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:744:8)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1261:39
15|Parse server | From previous event:
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1220:14
15|Parse server | From previous event:
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1180:10
15|Parse server | From previous event:
15|Parse server | at DatabaseController.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1165:59)
15|Parse server | at RestQuery.runCount (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:686:31)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:215:19
15|Parse server | From previous event:
15|Parse server | at RestQuery.execute (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:214:6)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:52:20
15|Parse server | at invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at checkAndInvokeCallback (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:249:5)
15|Parse server | at Immediate._onImmediate (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:226:16)
15|Parse server | at processImmediate (internal/timers.js:464:21)
15|Parse server | at process.topLevelDomainCallback (domain.js:152:15)
15|Parse server | at process.callbackTrampoline (internal/async_hooks.js:128:24)
15|Parse server | From previous event:
15|Parse server | at Object.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:39:6)
15|Parse server | at ClassesRouter.handleFind (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:35:8)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:223:19
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/PromiseRouter.js:150:7
15|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
15|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
15|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:110:13)
15|Parse server | at Route.dispatch (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:91:3)
15|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:267:22
15|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:340:14)
15|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:356:14)
15|Parse server | at Function.proto.process_params (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:400:3)
15|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:261:10)
15|Parse server | at Function.proto.handle (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:166:3)
15|Parse server | at router (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:35:12)
15|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
15|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
15|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
15|Parse server | 2022-08-17 09:35 +00:00: TypeError: this._mongoCollection.countDocuments is not a function
15|Parse server | at MongoCollection.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoCollection.js:114:50)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:745:20
15|Parse server | From previous event:
15|Parse server | at MongoStorageAdapter.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:744:8)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1261:39
15|Parse server | From previous event:
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1220:14
15|Parse server | From previous event:
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1180:10
15|Parse server | From previous event:
15|Parse server | at DatabaseController.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1165:59)
15|Parse server | at RestQuery.runCount (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:686:31)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:215:19
15|Parse server | From previous event:
15|Parse server | at RestQuery.execute (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:214:6)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:52:20
15|Parse server | at invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at checkAndInvokeCallback (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:249:5)
15|Parse server | at Immediate._onImmediate (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:226:16)
15|Parse server | at processImmediate (internal/timers.js:464:21)
15|Parse server | at process.topLevelDomainCallback (domain.js:152:15)
15|Parse server | at process.callbackTrampoline (internal/async_hooks.js:128:24)
15|Parse server | From previous event:
15|Parse server | at Object.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:39:6)
15|Parse server | at ClassesRouter.handleFind (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:35:8)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:223:19
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/PromiseRouter.js:150:7
15|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
15|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
15|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:110:13)
15|Parse server | at Route.dispatch (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:91:3)
15|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:267:22
15|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:340:14)
15|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:356:14)
15|Parse server | at Function.proto.process_params (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:400:3)
15|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:261:10)
15|Parse server | at Function.proto.handle (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:166:3)
15|Parse server | at router (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:35:12)
15|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
15|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
15|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
15|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
15|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
34|Parse server | 2022-08-17 09:35 +00:00: 2022-08-17T09:35:10.522Z - error: Uncaught internal server error. this._mongoCollection.countDocuments is not a function level=error, message=Uncaught internal server error. this._mongoCollection.countDocuments is not a function, stack=TypeError: this._mongoCollection.countDocuments is not a function
34|Parse server | at MongoCollection.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoCollection.js:114:50)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:745:20
34|Parse server | From previous event:
34|Parse server | at MongoStorageAdapter.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:744:8)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1261:39
34|Parse server | From previous event:
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1220:14
34|Parse server | From previous event:
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1180:10
34|Parse server | From previous event:
34|Parse server | at DatabaseController.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1165:59)
34|Parse server | at RestQuery.runCount (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:686:31)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:215:19
34|Parse server | From previous event:
34|Parse server | at RestQuery.execute (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:214:6)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:52:20
34|Parse server | at invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at checkAndInvokeCallback (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:249:5)
34|Parse server | at Immediate._onImmediate (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:226:16)
34|Parse server | at processImmediate (internal/timers.js:464:21)
34|Parse server | at process.topLevelDomainCallback (domain.js:152:15)
34|Parse server | at process.callbackTrampoline (internal/async_hooks.js:128:24)
34|Parse server | From previous event:
34|Parse server | at Object.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:39:6)
34|Parse server | at ClassesRouter.handleFind (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:35:8)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:223:19
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/PromiseRouter.js:150:7
34|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
34|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
34|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:110:13)
34|Parse server | at Route.dispatch (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:91:3)
34|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:267:22
34|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:340:14)
34|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:356:14)
34|Parse server | at Function.proto.process_params (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:400:3)
34|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:261:10)
34|Parse server | at Function.proto.handle (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:166:3)
34|Parse server | at router (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:35:12)
34|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
34|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
34|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
34|Parse server | 2022-08-17 09:35 +00:00: TypeError: this._mongoCollection.countDocuments is not a function
34|Parse server | at MongoCollection.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoCollection.js:114:50)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:745:20
34|Parse server | From previous event:
34|Parse server | at MongoStorageAdapter.count (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Adapters/Storage/Mongo/MongoStorageAdapter.js:744:8)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1261:39
34|Parse server | From previous event:
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1220:14
34|Parse server | From previous event:
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1180:10
34|Parse server | From previous event:
34|Parse server | at DatabaseController.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Controllers/DatabaseController.js:1165:59)
34|Parse server | at RestQuery.runCount (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:686:31)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:215:19
34|Parse server | From previous event:
34|Parse server | at RestQuery.execute (/home/ubuntu/co-parse-server/node_modules/parse-server/src/RestQuery.js:214:6)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:52:20
34|Parse server | at invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at checkAndInvokeCallback (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:249:5)
34|Parse server | at Immediate._onImmediate (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:226:16)
34|Parse server | at processImmediate (internal/timers.js:464:21)
34|Parse server | at process.topLevelDomainCallback (domain.js:152:15)
34|Parse server | at process.callbackTrampoline (internal/async_hooks.js:128:24)
34|Parse server | From previous event:
34|Parse server | at Object.find (/home/ubuntu/co-parse-server/node_modules/parse-server/src/rest.js:39:6)
34|Parse server | at ClassesRouter.handleFind (/home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:35:8)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/Routers/ClassesRouter.js:223:19
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/parse-server/src/PromiseRouter.js:150:7
34|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
34|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
34|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:110:13)
34|Parse server | at Route.dispatch (/home/ubuntu/co-parse-server/node_modules/express/lib/router/route.js:91:3)
34|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:267:22
34|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:340:14)
34|Parse server | at param (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:356:14)
34|Parse server | at Function.proto.process_params (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:400:3)
34|Parse server | at next (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:261:10)
34|Parse server | at Function.proto.handle (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:166:3)
34|Parse server | at router (/home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:35:12)
34|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
34|Parse server | at Object.invokeSyncOpn (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/wrapper.js:269:30)
34|Parse server | at handleMiddleware (/home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:156:13)
34|Parse server | at /home/ubuntu/co-parse-server/node_modules/apminsight/lib/instrument/modules/express.js:133:16
34|Parse server | at Layer.handle [as handle_request] (/home/ubuntu/co-parse-server/node_modules/express/lib/router/layer.js:82:5)
35|Parse server | 2022-08-17 09:35 +00:00: (node:3419927) Warning: a promise was created in a handler at /home/ubuntu/co-parse-server/node_modules/express/lib/router/index.js:321:12 but was not returned from it, see http://goo.gl/rRqMUw
35|Parse server | at Function.Promise.cast (/home/ubuntu/co-parse-server/node_modules/bluebird/js/release/promise.js:225:13)

Activity

parse-github-assistant

parse-github-assistant commented on Aug 17, 2022

@parse-github-assistant

Thanks for opening this issue!

  • 🚀 You can help us to fix this issue faster by opening a pull request with a failing test. See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.
added
type:bugImpaired feature or lacking behavior that is likely assumed
on Aug 17, 2022
mtrezza

mtrezza commented on Aug 17, 2022

@mtrezza
Member

Could this be related to the MongoDB version? Could you create a PR with a failing test?

Simone-cogno

Simone-cogno commented on Aug 17, 2022

@Simone-cogno
Author

I unfortunately don't have time to do that (I'm also not yet a contributor so that will require me some time to setup it). If you think that could be the database I can try to update it to the last version and try again. I'm sorry to not be able to provide the failing test cases that reproduce this issue.

Simone-cogno

Simone-cogno commented on Aug 18, 2022

@Simone-cogno
Author

I've tried to update to MongoDB v4.4.5 and version v5.0.1 I have the same issue with parse-server 5.2.4. Seems like that the parse-server does not like the "count":1 part in the HTTP query. If I remove that part I don't get any errors from the server.

@mtrezza so this seems a bug in the parse-server at least that the count: 1 is not anymore supported in the new version 5.x but i couldn't find it in the release notes. I've only noticed that in 5.x the MongoDB driver was updated to support MongoDB 5.x maybe that caused the error https://github.com/parse-community/parse-server/releases/tag/5.0.0-alpha.22 . Any changes this could be addressed? It makes the parse-dashboard not usable anymore and I don't want to downgrade parse-server as I've already made the upgrade in production (and a part this it works fine). Thanks!

mtrezza

mtrezza commented on Aug 18, 2022

@mtrezza
Member

Isn't your query very similar to this test?

it('query with limit = 0 and count = 1', done => {
rest
.create(config, nobody, 'TestObject', { foo: 'baz' })
.then(() => {
return rest.create(config, nobody, 'TestObject', { foo: 'qux' });
})
.then(() => {
return rest.find(config, nobody, 'TestObject', {}, { limit: 0, count: 1 });
})
.then(response => {
expect(response.results.length).toEqual(0);
expect(response.count).toEqual(2);
done();
});
});

To be sure I've added another test that uses the REST API with similar parameters as in your description:
https://github.com/parse-community/parse-server/pull/8135/files

The PR passes all tests, so could you please take a look at the test and maybe repeat the test in your environment? If you see a difference between your query and the one in the test please let me know. The test uses the REST API, but your request seems to come from the. Parse JS SDK, however they should result in the same.

mtrezza

mtrezza commented on Sep 3, 2022

@mtrezza
Member

Could the issue be related to this from the MongoDB release notes:

Estimated Document Count uses the Count command

The 5.0 server compatible release unintentionally broke the estimatedDocumentCount command on views by changing the implementation from the count command to aggregate and a collStats stage. This release fixes estimatedDocumentCount on views by reverting the implementation to use count.

Due to an oversight, the count command was omitted from the Stable API in server versions 5.0.0 - 5.0.8 and 5.1.0 - 5.3.1, so users of the Stable API with estimatedDocumentCount are recommended to upgrade their MongoDB clusters to 5.0.9 or 5.3.2 (if on Atlas) or set apiStrict: false when constructing their MongoClients.

#8135 did not produce any errors in the CI, maybe because it wasn't using any of the affected MongoDB versions. You indicated MongoDB 4.2.0, are you sure you are using this version when the issue occurs?

Simone-cogno

Simone-cogno commented on Sep 5, 2022

@Simone-cogno
Author

@mtrezza yes I'm 100% sure that is this MongoDB version as my production server is running with it (v4.2.0). I'm still experiencing this issue at the moment, I was not able to resolve it in any environment for now but I have tested it only on MongoDB version > 4.2. For now I'm using a MongoDB database management tool as the Parse Dashboard is not anymore usable for me...

mtrezza

mtrezza commented on Sep 8, 2022

@mtrezza
Member

Were you able to reproduce the issue with the REST API call that you mention in your first comment?

Simone-cogno

Simone-cogno commented on Sep 19, 2022

@Simone-cogno
Author

@mtrezza yes locally I can reproduce the issue that I've described with the MongoDB version that I've tried. It's not possible to add a try/catch in case the MongoDB does not support the "estimatedDocumentCount" ? I mean worst case we don't see the count of the document if this function is not supported by the db. Currently I still unable to use the dashboard which is not optimal for my business as it is an important part of my toolbox for managing the DB.

mtrezza

mtrezza commented on Sep 19, 2022

@mtrezza
Member

We make changes based on analysis. So we'd need to come to a conclusion what the underlying issue is and what a fixes requires. To do that we need to be able to reproduce the issue.

If there is a business urgency, we may be able to tap into our paid contributors resources and assign someone to analyze it. If you are interested we can discuss in chat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugImpaired feature or lacking behavior that is likely assumed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @mtrezza@Simone-cogno

      Issue actions

        HTTP Query error on v5.2.4 'this._mongoCollection.countDocuments is not a function' · Issue #8127 · parse-community/parse-server