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.isConnected
should now be replaced byMongoUtils.isConnected
Other Notable Breaking Changes
- Name changed from
@neo9/n9-mongo-client
to@neo9/n9-mongodb-client
Cursor
are nowN9FindCursor
orN9AggregationCursor
MongoClient
is renamed toN9MongoDBClient
MongoUtils
functions are renamed to the UPPER_CASE equivalent :oid
→TO_OBJECT_ID
oids
→TO_OBJECT_IDS
connect
→CONNECT
- And so on ...
- We removed all usage of global variable :
global.log
→ A logger is required as parameter of a newN9MongoDBClient
global.db
→MongoUtils.CONNECT
return it, it has to be pass to the newN9MongoDBClient
settingsglobal.dlClient
→MongoUtils.CONNECT
return it too now, asmongodbClient
and 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/mongodb
find ./ -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/node16
yarn remove @tsconfig/node14
- Upgrade
tsconfig.json
filesed -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
count
function onN9AggregationCursor
that wasn't available onAggregationCursor
-
It's a good time to use new version of
@neo9/n9-mongodb-migration
V1 :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 build
Please refer to test folder to find samples.