我有一个包含商店列表的大型 CSV 文件,其中一个字段是邮政编码。 我有一个名为 ZipCodes 的独立 MongoDB 数据库,它存储任何给定邮政编码的纬度和经度。
在 SQL Server 中,我将执行一个名为 InsertStore 的存储过程,它将查找 ZipCodes 表以获取相应的纬度和经度,并将数据插入到 Stores 表中。
MongoDB 中是否有类似存储过程概念的东西? 基本上,对于每个插入,我需要查找该商店的纬度和经度并保存它。
我不太熟悉 Map/Reduce 的概念,但这与这里相关吗? 谢谢!
与 mongodb 中的存储过程最接近的东西是存储 JavaScript。 Mike Dirolf 博客上的本文提供了有关存储 javascript 的精彩介绍。
注意,根据参考:
不要将应用程序逻辑存储在数据库中。有表现 在 MongoDB 内运行 JavaScript 的限制。应用代码 当与以下人员共享版本控制时通常也是最有效的 应用程序本身。
因此 mongodb 中没有任何等效的存储过程。
您可以通过 MongoDB Stitch 在云上使用触发器和函数。
MongoDB 通过其聚合管道或 MongoDB Atlas 函数为传统 SQL Server 存储过程提供了“强大的替代方案”。 MongoDB 鼓励使用聚合管道而不是存储过程,这为数据转换和操作提供了灵活性。 在基于 ZipCodes 将纬度和经度插入 Stores 集合的场景中,您可以利用聚合管道来实现此目的。这是一个简化的方法:
$merge
阶段将结果与 Stores 集合合并或将它们插入到新集合中。
如果您需要有关将基于 SQL 的存储过程迁移到 MongoDB 聚合管道的更详细指导,可以参考以下技术指南:
https://www.mongodb.com/collateral/technical-guide-migration-stored-procedures-to-mongodb