diff --git a/History.md b/History.md index c2a6d80e2a..1d4bb3b575 100644 --- a/History.md +++ b/History.md @@ -5,6 +5,9 @@ * `meteor-tool@2.4` - `meteor show` now reports if a package is deprecated +* `mongo@1.13.0` + - Add `createIndex` as a collection function. This is a new name for `_ensureIndex` which MongoDB has deprecated and removed in MongoDB 5.0. Use of `_ensureIndex` will show a deprecation warning on development. + #### Independent Releases * `minifier-js@2.6.1` @@ -20,9 +23,6 @@ - Modernized the code - Fixed a variable assignment bug in `dontBindEnvironment` function -* `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 4781176da4..6ea7c3757c 100644 --- a/packages/mongo/collection.js +++ b/packages/mongo/collection.js @@ -671,14 +671,21 @@ Object.assign(Mongo.Collection.prototype, { var self = this; if (!self._collection._ensureIndex) throw new Error("Can only call _ensureIndex on server collections"); - self._collection._ensureIndex(index, options); + if (self._collection.createIndex) { + import { Log } from 'logging'; + + Log.debug('_ensureIndex has been deprecated, please use the new `createIndex` instead') + self._collection.createIndex(index, options); + } else { + self._collection._ensureIndex(index, options); + } }, - _createIndex(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); + if (!self._collection.createIndex) + throw new Error("Can only call createIndex on server collections"); + self._collection.createIndex(index, options); }, _dropIndex(index) { diff --git a/packages/mongo/mongo_driver.js b/packages/mongo/mongo_driver.js index 720b96a580..7997ddec73 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._createIndex = function (collectionName, index, +MongoConnection.prototype.createIndex = function (collectionName, index, options) { var self = this; @@ -841,7 +841,7 @@ MongoConnection.prototype._createIndex = function (collectionName, index, future.wait(); }; -MongoConnection.prototype._ensureIndex = MongoConnection.prototype._createIndex; +MongoConnection.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 cbe14baf9b..7789f54a9f 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._createIndex({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/package.js b/packages/mongo/package.js index 3522c4d669..f1a2820370 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '1.12.0' + version: '1.12.0-beta240.2' }); Npm.depends({ @@ -35,6 +35,7 @@ Package.onUse(function (api) { 'check', 'ecmascript', 'mongo-dev-server', + 'logging' ]); // Make weak use of Decimal type on client diff --git a/packages/mongo/remote_collection_driver.js b/packages/mongo/remote_collection_driver.js index 1ecbf54146..97379a43a1 100644 --- a/packages/mongo/remote_collection_driver.js +++ b/packages/mongo/remote_collection_driver.js @@ -9,7 +9,7 @@ Object.assign(MongoInternals.RemoteCollectionDriver.prototype, { var self = this; var ret = {}; ['find', 'findOne', 'insert', 'update', 'upsert', - 'remove', '_ensureIndex', '_createIndex', '_dropIndex', '_createCappedCollection', + 'remove', '_ensureIndex', 'createIndex', '_dropIndex', '_createCappedCollection', 'dropCollection', 'rawCollection'].forEach( function (m) { ret[m] = _.bind(self.mongo[m], self.mongo, name);