Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一种Mongoose方法来保存多个文档,但仅当所有文档都成功时才保存_Javascript_Mongodb_Mongoose_Transactions_Atomic - Fatal编程技术网

Javascript 是否有一种Mongoose方法来保存多个文档,但仅当所有文档都成功时才保存

Javascript 是否有一种Mongoose方法来保存多个文档,但仅当所有文档都成功时才保存,javascript,mongodb,mongoose,transactions,atomic,Javascript,Mongodb,Mongoose,Transactions,Atomic,我有一系列文档,但我只想在每个文档都成功时保存它们。有猫鼬的方法吗 比如: Insert el[0] - success Insert el[1] - success Insert el[2] - fail Delete el[1] Delete el[0] 您可以使用事务来实现这一点。以下是文档中的一个示例: let session=null; 返回Customer.createCollection()。 然后(()=>Customer.startSession()。 然后(_session

我有一系列文档,但我只想在每个文档都成功时保存它们。有猫鼬的方法吗

比如:

Insert el[0] - success
Insert el[1] - success
Insert el[2] - fail
Delete el[1]
Delete el[0]

您可以使用事务来实现这一点。以下是文档中的一个示例:

let session=null;
返回Customer.createCollection()。
然后(()=>Customer.startSession()。
然后(_session=>{
会话=_会话;
session.startTransaction();
返回Customer.create([{name:'Test'}],{session:session});
}).
然后(()=>Customer.create([{name:'Test2'}],{session:session}))。
然后(()=>session.abortTransaction())。
然后(()=>Customer.countDocuments()。
然后(count=>assert.strimequal(count,0))。
然后(()=>session.endSession());
您可以使用
abortTransaction
在出现错误时回滚查询

请在此处阅读更多信息:

Afaik mongoose不支持事务。本教程可以帮助您:谢谢,您知道.findOne().session()上的_id是否会被传递吗?@JanneckLange我没听清楚。