http://martinfowler.com/articles/dblogic.html
使用上述文章的术语,在处理 SQL 数据库时,编码的事务脚本模式显然是一种反模式。
NoSQL 数据库(如 MongoDB)也一样吗?假设 nosql 查询将使用的列都已适当索引。
我问这个问题的原因是:MongoDB 中的查询执行返回一个可以迭代的游标。我不知道的是,是否存在与之相关的性能损失。
http://martinfowler.com/articles/dblogic.html
使用上述文章的术语,在处理 SQL 数据库时,编码的事务脚本模式显然是一种反模式。
NoSQL 数据库(如 MongoDB)也一样吗?假设 nosql 查询将使用的列都已适当索引。
我问这个问题的原因是:MongoDB 中的查询执行返回一个可以迭代的游标。我不知道的是,是否存在与之相关的性能损失。
该文章将“事务脚本”描述为
[a] 过程读取它可能需要的所有数据,然后在内存中进行选择和操作以确定需要哪些 [数据库条目]。
每个 NoSQL 数据库都是不同的,因此您不能为“NoSQL”一概而论。但是在几乎每个数据库系统中,尽可能多地对数据库进行操作是个好主意。
当您专门询问 MongoDB 时:MongoDB 数据库的设计并不像 SQL 数据库那样“智能”。该设计假设 SQL 数据库自己解决的许多问题都在应用层解决(约束、级联删除、连接、事务......)。查询语法也没有 SQL 发展 40 年积累的所有功能强大。这意味着您通常不会在应用层上进行过滤。但是当查询语法可以解决问题时,您通常应该尝试这样做。