存储在mongodb中的javascript是原子的吗?
如果我从服务器调用以下存储函数: 假设bEntity插入失败。在这种情况下,添加的aEntity是否会回滚到其旧状态?
function areYouAnAtomicOperation(x)
{
db.aEntity.insert ({a:x});
db.bEntity.insert ({b:x});
db.cEntity.insert ({c:x});
}
有什么方法可以使这个函数在 mongodb 中原子化吗?
If I call the following stored-function from server:
Assume that, insertation of bEntity failed. In this situtation, does added aEntity roll back to the its old state?
function areYouAnAtomicOperation(x)
{
db.aEntity.insert ({a:x});
db.bEntity.insert ({b:x});
db.cEntity.insert ({c:x});
}
Any method, for making this function atomic in mongodb?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,它不是原子的。以下是原子操作的列表。
如果它真的非常重要重要,您可以手动模拟two-阶段提交语义,但请注意它确实复杂。
如果事务很重要,您最好使用提供它的其他数据库(RDBMS?)。
No, it's not atomic. Here is a list of atomic operations.
If it's really really really important you can manually emulate two-phase commit semantics but be warned that it's really complicated.
If transactions are important, you better use some other database (an RDBMS?) which provides it.