MongoDB Transactions -将循环结构转换为JSON错误



对于在mongoose或mongodb中实现事务,我们是否需要副本集?我试图在mongodb中使用下面的代码实现事务

const session = await mongoose.startSession();
await session.startTransaction();
try {
// Writing to Invalid DB
if (invalidData && invalidData.length) {
const transformedData = this.transform(invalidData);
// console.log('transformedData---------->', transformedData);
const invalidOutput = await InvalidDataModel.insertMany([transformedData], { session });
await session.commitTransaction();
session.endSession();
} catch (error) {
console.log({ err: error.errmsg, result: error.result.result.writeErrors });
await session.abortTransaction();
session.endSession();
throw error;
}

但是我得到了错误

022-07-19T10:05:00.940Z - error: uncaughtException: Converting circular structure to JSON
--> starting at object with constructor 'Server'
|     property 's' -> object with constructor 'Object'
|     property 'coreTopology' -> object with constructor 'Server'
|     ...
|     property 's' -> object with constructor 'Object'
--- property 'topology' closes the circle date=Tue Jul 19 2022 15:35:00 GMT+0530 (India Standard Time), pid=50111, uid=503, gid=20,

需要帮助吗?

这是因为有一个JSON.stringify(query)导致了这个循环错误的发生。删除它。使用扁平化库,错误不会出现。