在 Phoenix 中使用 MongoDB 非常简单。你不需要使用 Ecto 的东西,因为它是为像 PostgreSQL 这样的关系数据库设计的。你直接和mongodb驱动对话:
您可以将连接 url 放入您的 Phoenix 应用程序的配置环境(例如 config.ex)中:
config :app, :mongodb,
url: "mongodb://localhost:27017,localhost:27018,localhost:27019/my_database?replicaSet=my_replica_set"
URL 指定了三个节点的副本集。
在application.ex 中添加这样的工人:
旧式:
worker(Mongo, [[name: :mongo, url: Application.get_env(:app, :mongodb)[:url], timeout: 60_000, pool_size: 10]])
需要样式:
{Mongo, [name: :mongo, url: Application.get_env(:app, :mongodb)[:url], timeout: 60_000, pool_size: 10]}
worker 以 60 秒的超时和 10 个连接的池大小启动 GenServer。之后你就可以像往常一样使用MongoDB了:
Mongo.find(:mongo, "accounts", %{"email" => the_email})