Skip to content

Commit

Permalink
feat(NODE-3818)!: remove slaveOk options (#3503)
Browse files Browse the repository at this point in the history
  • Loading branch information
durran authored Jan 3, 2023
1 parent 8900d40 commit 2e28009
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 32 deletions.
5 changes: 5 additions & 0 deletions etc/notes/CHANGES_5.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ The following is a detailed collection of the changes in the major v5 release of

## Changes

### salveOk options removed

The deprecated `slaveOk` option and `slaveOk()` method on the `Collection` class have been removed. Please
now use `secondaryOk` as the replacement for the option and the method.

### Bulk results no longer contain `lastOp()` and `opTime`

The `lastOp()` method and `opTime` property on the `BulkResult` have been removed. Merging of bulk results
Expand Down
4 changes: 0 additions & 4 deletions src/collection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,6 @@ export interface CollectionOptions
extends BSONSerializeOptions,
WriteConcernOptions,
LoggerOptions {
/**
* @deprecated Use readPreference instead
*/
slaveOk?: boolean;
/** Specify a read concern for the collection. (only MongoDB 3.2 or higher supported) */
readConcern?: ReadConcernLike;
/** The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */
Expand Down
8 changes: 0 additions & 8 deletions src/db.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,14 +184,6 @@ export class Db {
return this.s.options;
}

/**
* slaveOk specified
* @deprecated Use secondaryOk instead
*/
get slaveOk(): boolean {
return this.secondaryOk;
}

/**
* Check if a secondary can be used (because the read preference is *not* set to primary)
*/
Expand Down
9 changes: 0 additions & 9 deletions src/read_preference.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,15 +227,6 @@ export class ReadPreference {
return ReadPreference.isValid(typeof mode === 'string' ? mode : this.mode);
}

/**
* Indicates that this readPreference needs the "secondaryOk" bit when sent over the wire
* @deprecated Use secondaryOk instead
* @see https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op-query
*/
slaveOk(): boolean {
return this.secondaryOk();
}

/**
* Indicates that this readPreference needs the "SecondaryOk" bit when sent over the wire
* @see https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op-query
Expand Down
6 changes: 0 additions & 6 deletions test/unit/db.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,47 +7,41 @@ import { ReadPreference } from '../../src/read_preference';
describe('class Db', function () {
describe('secondaryOk', function () {
const client = new MongoClient('mongodb://localhost:27017');
const legacy_secondary_ok = 'slaveOk';
const secondary_ok = 'secondaryOk';

it('should be false when readPreference is Primary', function () {
const options: DbOptions = { readPreference: ReadPreference.PRIMARY };
const mydb = new Db(client, 'mydb', options);

expect(mydb).property(secondary_ok).to.be.false;
expect(mydb).property(legacy_secondary_ok).to.be.false;
});

it('should be true when readPreference is Primary Preferred', function () {
const options: DbOptions = { readPreference: ReadPreference.PRIMARY_PREFERRED };
const mydb = new Db(client, 'mydb', options);

expect(mydb).property(secondary_ok).to.be.true;
expect(mydb).property(legacy_secondary_ok).to.be.true;
});

it('should be true when readPreference is Secondary', function () {
const options: DbOptions = { readPreference: ReadPreference.SECONDARY };
const mydb = new Db(client, 'mydb', options);

expect(mydb).property(secondary_ok).to.be.true;
expect(mydb).property(legacy_secondary_ok).to.be.true;
});

it('should be true when readPreference is Secondary Preferred', function () {
const options: DbOptions = { readPreference: ReadPreference.SECONDARY_PREFERRED };
const mydb = new Db(client, 'mydb', options);

expect(mydb).property(secondary_ok).to.be.true;
expect(mydb).property(legacy_secondary_ok).to.be.true;
});

it('should be true when readPreference is Nearest', function () {
const options: DbOptions = { readPreference: ReadPreference.NEAREST };
const mydb = new Db(client, 'mydb', options);

expect(mydb).property(secondary_ok).to.be.true;
expect(mydb).property(legacy_secondary_ok).to.be.true;
});
});
});
5 changes: 0 additions & 5 deletions test/unit/read_preference.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,39 +139,34 @@ describe('class ReadPreference', function () {
readPreference: PRIMARY
});
expect(readPreference.secondaryOk()).to.be.false;
expect(readPreference.slaveOk()).to.be.false;
});

it('should be true when readPreference is Primary Preferred', function () {
const readPreference = ReadPreference.fromOptions({
readPreference: PRIMARY_PREFERRED
});
expect(readPreference.secondaryOk()).to.be.true;
expect(readPreference.slaveOk()).to.be.true;
});

it('should be true when readPreference is Secondary', function () {
const readPreference = ReadPreference.fromOptions({
readPreference: SECONDARY
});
expect(readPreference.secondaryOk()).to.be.true;
expect(readPreference.slaveOk()).to.be.true;
});

it('should be true when readPreference is Secondary Preferred', function () {
const readPreference = ReadPreference.fromOptions({
readPreference: SECONDARY_PREFERRED
});
expect(readPreference.secondaryOk()).to.be.true;
expect(readPreference.slaveOk()).to.be.true;
});

it('should be true when readPreference is Nearest', function () {
const readPreference = ReadPreference.fromOptions({
readPreference: NEAREST
});
expect(readPreference.secondaryOk()).to.be.true;
expect(readPreference.slaveOk()).to.be.true;
});
});
});

0 comments on commit 2e28009

Please sign in to comment.