0

我是 mongodb (java) 的新手。

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

在mongodb中可以吗?

4

2 回答 2

2

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

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

但是,您可以使用$whereeval中的实际函数名称来实现它system.js。但是这些实际上并没有运行“服务器端”。

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

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

关系查询

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

于 2012-08-30T13:16:32.390 回答
1

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

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

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

于 2012-08-30T13:08:54.787 回答