i want to use transaction
to creation two collection together, but when i send the information from frontend to backend i get this error
:
MongoError: Cannot create namespace INS_APP.posts in multi-document transaction.
at Function.create (G:\ins-app\backend\node_modules\mongodb\lib\core\error.js:57:12)
at toError (G:\ins-app\backend\node_modules\mongodb\lib\utils.js:123:22)
at G:\ins-app\backend\node_modules\mongodb\lib\operations\common_functions.js:265:39
at handler (G:\ins-app\backend\node_modules\mongodb\lib\core\topologies\replset.js:1204:22)
at commandResponseHandler (G:\ins-app\backend\node_modules\mongodb\lib\core\wireprotocol\command.js:115:25)
at G:\ins-app\backend\node_modules\mongodb\lib\core\connection\pool.js:405:18
at processTicksAndRejections (internal/process/task_queues.js:79:11) {
driver: true,
index: 0,
code: 263
}
this is my code:
const saved = new Saved(userId);
const session = client().startSession();
session.startTransaction();
try {
const opts = { session, returnOriginal: false };
const post = new Post(address, description, req.file.path, userId);
const postId = await post.save(opts);
const likesComments = new LikesComments(postId.ops[0]._id.toString());
await likesComments.save(opts);
await saved.save();
await session.commitTransaction();
session.endSession();
} catch (error) {
console.log(error);
await session.abortTransaction();
session.endSession();
return next(
new HttpError("could not create post, something went wrong", 500)
);
}