【问题标题】:is procedure exist in mongodbmongodb中是否存在程序
【发布时间】:2012-08-30 13:05:25
【问题描述】:

我是 mongodb (java) 的新手。

我需要使用类似于关系数据库中的过程的东西来执行命令列表(关系查询)。

在mongodb中可以吗?

【问题讨论】:

    标签: mongodb mongodb-java mongodb-query


    【解决方案1】:

    MongoDB 没有真正意义上的存储过程。它具有服务器端功能,但是这些功能:

    • 不要使用分片
    • 很慢
    • 必须评估(邪恶博士)
    • 仅真正设计用于 Map Reduces,以防止您不得不在许多地方存放多个通用代码副本。

    但是,您可以使用$whereevalsystem.js 中输入实际函数名称来实现它。但是这些实际上并不运行“服务器端”。

    在您的应用程序中使用 exec 类型命令来调用 shell 也不是一个好主意。您在 shell 中运行的脚本文件与您自己的应用程序一样多是客户端,所以这毫无意义。

    MongoDB 也不允许触发器,但它们在 JIRA 中:https://jira.mongodb.org/browse/SERVER-124 但未安排。您需要在代码中的客户端放置触发器。

    关系查询

    NoSQL 不是关系型的。您可能想了解如何为 MongoDB 设计适当的模式,这是一个起点:http://www.mongodb.org/display/DOCS/Schema+Design。这将教你 MongoDB 的精髓以及如何选择合适的结构。

    【讨论】:

      【解决方案2】:

      您可以创建服务器端 javascript 函数,是的。但我不建议这样做,因为它会是

      1. 很慢;
      2. 不受版本控制。

      阅读更多:http://www.mongodb.org/display/DOCS/Server-side+Code+Execution#Server-sideCodeExecution-Storingfunctionsserverside

      【讨论】:

      • 另一种方法是将您的过程编写为脚本文件并通过 mongo 可执行文件在服务器上运行它们。
      • 是的,如果你可以访问shell,那就是:)
      猜你喜欢
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 2014-01-28
      • 2011-02-06
      • 2019-08-10
      • 2016-06-18
      • 2016-05-03
      相关资源
      最近更新 更多