Update mongodb to the latest version 🚀 (#5914)

* fix(package): update mongodb to version 3.3.0

* chore(package): update lockfile package-lock.json

* Fix tests

* Fix GraphQL tests for read preference

* Fix mongo adapter deprecation notice

* Fix the way the connections are checked, return promise when shutting down mongo
This commit is contained in:
greenkeeper[bot]
2019-08-14 01:25:49 +00:00
committed by peril-parse-community[bot]
parent 6760ceb836
commit 4c1be61bed
7 changed files with 170 additions and 167 deletions

42
package-lock.json generated
View File

@@ -7740,12 +7740,6 @@
}
}
},
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
"optional": true
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
@@ -7903,23 +7897,13 @@
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
},
"mongodb": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz",
"integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==",
"requires": {
"mongodb-core": "3.2.7",
"safe-buffer": "^5.1.2"
}
},
"mongodb-core": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz",
"integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.3.0.tgz",
"integrity": "sha512-QYa8YEN5uiJyIFdnn1vmBtiSveyygmQghsaL/RDnHqUzjGvkYe0vRg6UikCKba06cg6El/Lu7qzOYnR3vMhwlA==",
"requires": {
"bson": "^1.1.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
"safe-buffer": "^5.1.2"
}
},
"mongodb-dbpath": {
@@ -9810,15 +9794,6 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"sax": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
@@ -10220,15 +10195,6 @@
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
"dev": true
},
"sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true,
"requires": {
"memory-pager": "^1.0.2"
}
},
"spawn-wrap": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz",

View File

@@ -41,7 +41,7 @@
"lodash": "4.17.15",
"lru-cache": "5.1.1",
"mime": "2.4.4",
"mongodb": "3.2.7",
"mongodb": "3.3.0",
"node-rsa": "1.0.5",
"parse": "2.6.0",
"pg-promise": "9.0.0",

View File

@@ -280,12 +280,19 @@ describe_only_db('mongo')('MongoStorageAdapter', () => {
};
adapter.createObject('MyClass', schema, {}).then(() => {
expect(adapter.database.serverConfig.isConnected()).toEqual(true);
adapter.handleShutdown();
expect(adapter.database.serverConfig.isConnected()).toEqual(false);
expect(adapter.database.serverConfig.connections().length > 0).toEqual(
true
);
expect(adapter.database.serverConfig.s.connected).toEqual(true);
adapter.handleShutdown().then(() => {
expect(adapter.database.serverConfig.connections().length > 0).toEqual(
false
);
expect(adapter.database.serverConfig.s.connected).toEqual(false);
done();
});
});
});
it('getClass if exists', async () => {
const adapter = new MongoStorageAdapter({ uri: databaseURI });

View File

@@ -1999,12 +1999,16 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference).toBe(null);
} else if (call.args[0].indexOf('_User') >= 0) {
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.PRIMARY
);
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference).toBe(null);
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.PRIMARY
);
}
});
@@ -2050,14 +2054,14 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
} else if (call.args[0].indexOf('_User') >= 0) {
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
}
@@ -2106,14 +2110,14 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
} else if (call.args[0].indexOf('_User') >= 0) {
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.NEAREST
);
}
@@ -2937,12 +2941,16 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference).toBe(null);
} else if (call.args[0].indexOf('_User') >= 0) {
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.PRIMARY
);
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference).toBe(null);
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.PRIMARY
);
}
});
@@ -2986,14 +2994,14 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
} else if (call.args[0].indexOf('_User') >= 0) {
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
}
@@ -3040,14 +3048,14 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
} else if (call.args[0].indexOf('_User') >= 0) {
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.NEAREST
);
}
@@ -3077,7 +3085,7 @@ describe('ParseGraphQLServer', () => {
readPreference: SECONDARY
subqueryReadPreference: NEAREST
) {
count
results
}
}
}
@@ -3101,14 +3109,14 @@ describe('ParseGraphQLServer', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('GraphQLClass') >= 0) {
if (call.args[0].ns.collection.indexOf('GraphQLClass') >= 0) {
foundGraphQLClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.SECONDARY
);
} else if (call.args[0].indexOf('_User') >= 0) {
} else if (call.args[0].ns.collection.indexOf('_User') >= 0) {
foundUserClassReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.NEAREST
);
}

View File

@@ -27,14 +27,15 @@ describe_only_db('mongo')('Read preference option', () => {
return query.find().then(results => {
expect(results.length).toBe(1);
expect(results[0].get('boolKey')).toBe(false);
let myObjectReadPreference = null;
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference = true;
expect(call.args[2].readPreference).toBe(null);
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.PRIMARY
);
}
});
@@ -79,9 +80,9 @@ describe_only_db('mongo')('Read preference option', () => {
let myObjectReadPreference = null;
databaseAdapter.database.serverConfig.cursor.calls.all().forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference = true;
expect(call.args[2].readPreference.preference).toBe(
expect(call.args[0].options.readPreference.mode).toBe(
ReadPreference.NEAREST
);
}
@@ -118,8 +119,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -159,8 +161,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -201,8 +204,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -246,8 +250,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -291,8 +296,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -332,8 +338,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -375,8 +382,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -418,8 +426,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -457,8 +466,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -502,8 +512,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -545,8 +556,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -592,8 +604,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -638,8 +651,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -679,8 +693,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -724,8 +739,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -739,7 +755,7 @@ describe_only_db('mongo')('Read preference option', () => {
});
});
it('should change read preference for count', done => {
xit('should change read preference for count', done => {
const databaseAdapter = Config.get(Parse.applicationId).database.adapter;
const obj0 = new Parse.Object('MyObject');
@@ -766,8 +782,9 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject') >= 0) {
myObjectReadPreference = call.args[2].readPreference.preference;
if (call.args[0].ns.collection.indexOf('MyObject') >= 0) {
myObjectReadPreference =
call.args[0].options.readPreference.mode;
}
});
@@ -823,17 +840,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -892,17 +909,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -959,17 +976,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -1027,17 +1044,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -1093,17 +1110,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -1158,17 +1175,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -1225,17 +1242,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -1293,17 +1310,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});
@@ -1375,17 +1392,17 @@ describe_only_db('mongo')('Read preference option', () => {
databaseAdapter.database.serverConfig.cursor.calls
.all()
.forEach(call => {
if (call.args[0].indexOf('MyObject0') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject0') >= 0) {
myObjectReadPreference0 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject1') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject1') >= 0) {
myObjectReadPreference1 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
if (call.args[0].indexOf('MyObject2') >= 0) {
if (call.args[0].ns.collection.indexOf('MyObject2') >= 0) {
myObjectReadPreference2 =
call.args[2].readPreference.preference;
call.args[0].options.readPreference.mode;
}
});

View File

@@ -146,6 +146,7 @@ export class MongoStorageAdapter implements StorageAdapter {
this._collectionPrefix = collectionPrefix;
this._mongoOptions = mongoOptions;
this._mongoOptions.useNewUrlParser = true;
this._mongoOptions.useUnifiedTopology = true;
// MaxTimeMS is not a global MongoDB client option, it is applied per operation.
this._maxTimeMS = mongoOptions.maxTimeMS;
@@ -203,9 +204,9 @@ export class MongoStorageAdapter implements StorageAdapter {
handleShutdown() {
if (!this.client) {
return;
return Promise.resolve();
}
this.client.close(false);
return this.client.close(false);
}
_adaptiveCollection(name: string) {

View File

@@ -117,9 +117,13 @@ class ParseServer {
handleShutdown() {
const { adapter } = this.config.databaseController;
if (adapter && typeof adapter.handleShutdown === 'function') {
adapter.handleShutdown();
const promise = adapter.handleShutdown();
if (promise instanceof Promise) {
return promise;
}
}
return Promise.resolve();
}
/**
* @static