From b0288edc2c6fa89685f445a64f30dc6adab22b6c Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 21 Jul 2021 17:00:59 +0200 Subject: [PATCH] _createIndex for collections --- History.md | 3 +++ packages/mongo/collection.js | 7 +++++++ packages/mongo/mongo_driver.js | 5 ++++- packages/mongo/oplog_tests.js | 2 +- packages/mongo/remote_collection_driver.js | 9 ++++----- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/History.md b/History.md index ae80eec32e..8a597e348b 100644 --- a/History.md +++ b/History.md @@ -16,6 +16,9 @@ * `email@2.1.1` - Updated `nodemailer` to v6.6.3 +* `mongo@1.12.1` + - Add `_createIndex` as a collection function. This is a new name for `_ensureIndex` which MongoDB has deprecated and removed in MongoDB 5.0. + ## v2.3.2, 2021-07-13 #### Meteor Version Release diff --git a/packages/mongo/collection.js b/packages/mongo/collection.js index 99f68f035e..4781176da4 100644 --- a/packages/mongo/collection.js +++ b/packages/mongo/collection.js @@ -674,6 +674,13 @@ Object.assign(Mongo.Collection.prototype, { self._collection._ensureIndex(index, options); }, + _createIndex(index, options) { + var self = this; + if (!self._collection._createIndex) + throw new Error("Can only call _createIndex on server collections"); + self._collection._createIndex(index, options); + }, + _dropIndex(index) { var self = this; if (!self._collection._dropIndex) diff --git a/packages/mongo/mongo_driver.js b/packages/mongo/mongo_driver.js index fc90b82881..6e3b0814b4 100644 --- a/packages/mongo/mongo_driver.js +++ b/packages/mongo/mongo_driver.js @@ -829,7 +829,7 @@ MongoConnection.prototype.findOne = function (collection_name, selector, // We'll actually design an index API later. For now, we just pass through to // Mongo's, but make it synchronous. -MongoConnection.prototype._ensureIndex = function (collectionName, index, +MongoConnection.prototype._createIndex = function (collectionName, index, options) { var self = this; @@ -840,6 +840,9 @@ MongoConnection.prototype._ensureIndex = function (collectionName, index, var indexName = collection.ensureIndex(index, options, future.resolver()); future.wait(); }; + +MongoCollection.prototype._ensureIndex = MongoConnection.prototype._createIndex; + MongoConnection.prototype._dropIndex = function (collectionName, index) { var self = this; diff --git a/packages/mongo/oplog_tests.js b/packages/mongo/oplog_tests.js index d4d5eec9c9..cbe14baf9b 100644 --- a/packages/mongo/oplog_tests.js +++ b/packages/mongo/oplog_tests.js @@ -59,7 +59,7 @@ process.env.MONGO_OPLOG_URL && testAsyncMulti( var self = this; self.collectionName = Random.id(); self.collection = new Mongo.Collection(self.collectionName); - self.collection._ensureIndex({species: 1}); + self.collection._createIndex({species: 1}); // Fill collection with lots of irrelevant objects (red cats) and some // relevant ones (blue dogs). diff --git a/packages/mongo/remote_collection_driver.js b/packages/mongo/remote_collection_driver.js index 3a25960155..1ecbf54146 100644 --- a/packages/mongo/remote_collection_driver.js +++ b/packages/mongo/remote_collection_driver.js @@ -4,14 +4,13 @@ MongoInternals.RemoteCollectionDriver = function ( self.mongo = new MongoConnection(mongo_url, options); }; -_.extend(MongoInternals.RemoteCollectionDriver.prototype, { +Object.assign(MongoInternals.RemoteCollectionDriver.prototype, { open: function (name) { var self = this; var ret = {}; - _.each( - ['find', 'findOne', 'insert', 'update', 'upsert', - 'remove', '_ensureIndex', '_dropIndex', '_createCappedCollection', - 'dropCollection', 'rawCollection'], + ['find', 'findOne', 'insert', 'update', 'upsert', + 'remove', '_ensureIndex', '_createIndex', '_dropIndex', '_createCappedCollection', + 'dropCollection', 'rawCollection'].forEach( function (m) { ret[m] = _.bind(self.mongo[m], self.mongo, name); });