MongoServerError: Transaction numbers are only allowed on a replica set member or mongos transaction resolution

Transactions are undoubtedly the most exciting new feature in MongoDB 4.0. But unfortunately, most tools for installing and running MongoDB start a standalone server as opposed to a replica set. If you try to start a session on a standalone server, you'll get this error.

In order to use transactions, you need a MongoDB replica set, and starting a replica set locally for development is an involved process. The new run-rs npm module makes starting replica sets easy. Running run-rs is all you need to start a replica set, run-rs will even install the correct version of MongoDB for you.

Run-rs has no outside dependencies except Node.js and npm. You do not need to have DockerhomebrewAPTPython, or even MongoDB installed.

Install run-rs globally with npm's -g flag. You can also list run-rs in your package.json file's devDependencies.

npm install run-rs -g

Next, run run-rs with the --version flag. Run-rs will download MongoDB v4.0.0 for you. Don't worry, it won't overwrite your existing MongoDB install.

run-rs -v 4.0.0 --shell

 

Then use replicaSet=rs in your connection string.

const uri = 'mongodb://localhost:27017,localhost:27018,localhost:27019/test?' +
    'replicaSet=rs';

Introducing run-rs, a Zero Config MongoDB Replica Set Runner | www.thecodebarbarian.com

おすすめ

転載: blog.csdn.net/zdwzzu2006/article/details/132672557