parse-server
parse-server copied to clipboard
HTTP Query error on v5.2.4 'this._mongoCollection.countDocuments is not a function'
New Issue Checklist
- [x] I am not disclosing a vulnerability.
- [x] I am not just asking a question.
- [x] I have searched through existing issues.
- [x] 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)
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.
Could this be related to the MongoDB version? Could you create a PR with a failing test?
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.
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!
Isn't your query very similar to this test?
https://github.com/parse-community/parse-server/blob/f693b55b1cc194fde6b7d0b77213f01f79f8fb14/spec/RestQuery.spec.js#L261-L275
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.
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.
https://github.com/parse-community/parse-server/pull/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?
@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...
Were you able to reproduce the issue with the REST API call that you mention in your first comment?
@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.
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.