首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MongoDB创建原子存储过程/“存储JS”

问使用MongoDB创建原子存储过程/“存储JS”
EN

Stack Overflow用户
提问于 2017-07-25 20:19:24
回答 1查看 187关注 0票数 0

我们需要在MongoDB数据库中创建一个原子例程。

我们需要迭代一个集合,从集合中的所有文档中找到给定字段的最高数目,然后增加它。我们正在处理一些需要集成的遗留数据,否则我们已经有了一些原子序列。

如何在MongoDB中创建可以原子运行整个例程的存储JS或存储过程?

我看到了一些信息,但在我看来没有什么特别清楚的:

从猫鼬那里调用了存储的javascript函数?

https://groups.google.com/forum/#!topic/mongoose-orm/sPN3wfDstX4

https://github.com/mongoosejs/mongoose-function

在哪里可以找到好的信息,如何实际编写运行在MongoDB中的原子/阻塞存储过程,以及如何从应用程序中实际调用存储过程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 06:01:58

(总结上述评论)

目前,mongodb中没有任何东西允许您以原子方式运行任意逻辑(例如,包括多个查询来收集数据)。

mongodb必须提供的最好的原子功能是findAndModify。它的原子性自然仅限于一个文档,并且您有一个非常有限的更新操作符列表(也就是说,您甚至不能使用文档的字段,就像常规更新一样)。

使用应用程序级别的锁是可能的:应用程序插入或修改一个特殊的锁文档,这将向应用程序的其他部分发出信号:“我正在使用/更新此锁,请不要碰它”。操作完成后,应用程序就会释放锁,所以它现在可以由其他人重新获得了。当然,这完全取决于遵守锁协议的行为者,这一点不太可靠,可以温和地说。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45312769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档