首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法将mongodb与phoenix框架1.4版本连接起来

有没有办法将mongodb与phoenix框架1.4版本连接起来
EN

Stack Overflow用户
提问于 2018-12-30 13:36:39
回答 2查看 255关注 0票数 1

我正尝试在phoenix应用程序中使用mongodb。然而,官方文档仅涉及RDBMS (postgresql)。有没有办法用phoenix框架1.4连接到mongodb?

我正在尝试在phoenix中构建一个具有非结构化数据的应用程序。我从ECTO mongodb的文档中看到了旧版本。对于1.4版本的phoenix,没有指定选项。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-01 12:25:09

似乎还没有与Ecto 3最新的MongoDB/Ecto集成。

但是Phoenix不是你的应用程序,它是一个接口。它提供web界面。除了Phoenix之外,您还可以在应用程序中使用其他东西,并且可以使用基于Phoenix的接口可以使用数据的方式包装MongoDB。

所以你的问题的答案是肯定的,有一种方法可以将MongoDB与Phoenix 1.4连接起来,但它不是即插即用的。

编辑:我拼凑了一个例子,可以在here中找到。

基本上,它涉及两个应用程序:一个是普通的elixir应用程序,它只是mongodb 0.4.7,并封装了一些函数。另一个是phoenix应用,它使用了前面提到的mongodb包装器应用。凤凰应用程序需要使用mix phx.new --no-ecto创建,表面上看你可以将其作为一个应用程序来创建,但这给了你更多的回旋余地。

票数 0
EN

Stack Overflow用户

发布于 2020-03-24 17:44:10

在Phoenix中使用MongoDB非常简单。您不需要使用Ecto之类的东西,因为它是为PostgreSQL等关系数据库设计的。您可以直接与mongodb驱动程序对话:

您可以将连接url放入您的Phoenix应用程序的配置环境(例如config.ex)中:

代码语言:javascript
复制
config :app, :mongodb,
   url: "mongodb://localhost:27017,localhost:27018,localhost:27019/my_database?replicaSet=my_replica_set"

URL指定三个节点的副本集。

application.ex中,您可以像这样添加一个worker:

旧风格:

代码语言:javascript
复制
worker(Mongo, [[name: :mongo, url: Application.get_env(:app, :mongodb)[:url], timeout: 60_000, pool_size: 10]])

需要样式:

代码语言:javascript
复制
{Mongo, [name: :mongo, url: Application.get_env(:app, :mongodb)[:url], timeout: 60_000, pool_size: 10]}

worker启动GenServer的超时时间为60秒,池大小为10个连接。之后,您可以像往常一样使用MongoDB:

代码语言:javascript
复制
Mongo.find(:mongo, "accounts", %{"email" => the_email})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53975518

复制
相关文章

相似问题

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