A client to use easily MongoDB official driver.
Breaking changes (due to mongodb driver upgrade) :
- Index creation/update/deletion now use parameter of type
IndexSpecification - Sort param is no more an
object, it is a proper typeSort global.dbClient.isConnectedshould now be replaced byMongoUtils.isConnected
Other Notable Breaking Changes
- Name changed from
@neo9/n9-mongo-clientto@neo9/n9-mongodb-client Cursorare nowN9FindCursororN9AggregationCursorMongoClientis renamed toN9MongoDBClientMongoUtilsfunctions are renamed to the UPPER_CASE equivalent :oid→TO_OBJECT_IDoids→TO_OBJECT_IDSconnect→CONNECT- And so on ...
- We removed all usage of global variable :
global.log→ A logger is required as parameter of a newN9MongoDBClientglobal.db→MongoUtils.CONNECTreturn it, it has to be pass to the newN9MongoDBClientsettingsglobal.dlClient→MongoUtils.CONNECTreturn it too now, asmongodbClientand is required to callMongoUtils.DISCONNECT
Upgrade main steps
-
yarn remove @neo9/n9-mongo-client && yarn add @neo9/n9-mongodb-client@^1.0.0-rc.8(this also upgrade all transitive dependencies) -
Rename usage :
find ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e 's#@neo9/n9-mongo-client#@neo9/n9-mongodb-client#g' {} + -
Remove old mongodb types :
yarn remove @types/mongodbfind ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e "s#from 'mongodb'# from '@neo9/n9-mongodb-client/mongodb'#g" {} +⚠️ find ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e "s#AggregationCursor<#N9AggregationCursor<#g" {} +Can fix most of cases⚠️ find ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e "s# Cursor<# N9FindCursor<#g" {} +Can fix most of cases⚠️ find ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e "s#Cursor,##g" {} +Can fix most of cases⚠️ find ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e "s#{ FilterQuery } from '@neo9/n9-mongodb-client/mongodb';#{ FilterQuery } from '@neo9/n9-mongodb-client';#g" {} +Can fix most of cases⚠️ find ./ -mindepth 1 -type f -not -path "./node_modules/*" -not -path "./.git/*" -name "*.ts" -exec sed -i -e "s#{ Cursor } from '@neo9/n9-mongodb-client/mongodb';#{ N9FindCursor } from '@neo9/n9-mongodb-client';#g" {} +Can fix most of cases
-
Upgrade dependencies required :
yarn upgrade typescript@^5.2.2 @neo9/n9-coding-style@^5.1.2 prettier@^3.0.3- Upgrade tsconfig for node 16+ :
yarn add -D @tsconfig/node16yarn remove @tsconfig/node14- Upgrade
tsconfig.jsonfilesed -i 's#node14#node16#g' tsconfig.json
- Upgrade tsconfig for node 16+ :
-
Upgrade MongoDb used for tests to version 6.0+
-
Change MongoDB types imports from
import ... from 'mongodb';toimport ... from '@neo9/n9-mongodb-client/mongodb'; -
Use Node.js version 18 or greater.
-
Use new
countfunction onN9AggregationCursorthat wasn't available onAggregationCursor -
It's a good time to use new version of
@neo9/n9-mongodb-migrationV1 :yarn upgrade @neo9/n9-mongodb-migration@^1.0.0-rc.0
Use node 16.20.2+ to build and yarn.
git clone https://github.com/neo9/n9-mongodb-client.git
cd n9-mongodb-client
yarn && yarn buildPlease refer to test folder to find samples.