这只是连接Elixir到MongoDB的简单任务!!
标题:一个简单的任务,只需使用Elixir连接到MongoDB!
目标:尝试使用Elixir连接MongoDB的驱动程序。
目录:
1. 概述
2. 使用”mix new”创建项目
3. 尝试引入Elixir库!
4. 连接到MongoDB只是一项简单的任务!
执行环境:
操作系统:Windows8.1
Erlang:Eshell V6.4
Elixir:v1.0.4
elixir-mongo:v0.5.1
MongoDB:v3.0.3
1.概要
1.1 简介
Phoenixのサイトでずっと英語を素人翻訳するのがあきてきたので、
次の活力を得るためにElixir+MongoDBをやってみようかと思います。
今回の記事がQiitaにおける初投稿になります。
皆様の記事は色々と参考とさせて頂いています。いつも、ありがとうございます!
私も何かご協力ができないかと思い、記事を投稿することとしました。
Elixir+MongoDBとニッチな内容だと思いますが、
この記事がどなたかの訳に立つことを願います。
我根据这篇文章的指南,学习了如何混合新的库和模块导入。
参考了Qiita – Elixirで試しに何か書いてみる(その1)。
可是,我一直无法实现CRUD操作…orz.
1.2 前提 tî)
请提前安装MongoDB和Elixir的执行环境。
同时,请确保MongoDB已经启动。
使用”mix new”命令来创建项目。
2.1 创建项目
打开命令提示符。
请创建一个工作目录。
请各自移动到适当的目录中。
执行以下命令:
>mix new mongo_test
作业目录名称可以随意选择!!
ディレクトリが作成されているか確認する。
lsでもいいしGUIで見てもいいです。
用mix new的方式,项目已经完成了。
2.2测试
移動到创建的目录中,执行以下的命令:
>混合 测试
如果没有任何错误,就没问题。
3. 让我们导入Elixir库试试看!!
3.1 编辑 mix.exs
切换到工作目录。
从中打开 “/mongo_test/mix.exs” 文件。
虽然里面可能写了很多内容,先满足目的就好。
想要做什么…
我想要一个MongoDB的Elixir驱动程序库!!
在下方包含”defp deps do”的部分。
在此处添加以下行。
添加:[{:mongo, “~> 0.5.1”}]
会变成这样。
defmodule MongoTest.Mixfile do
use Mix.Project
def project do
[app: :mongo_test,
version: "0.0.1",
elixir: "~> 1.0.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps]
end
# Configuration for the OTP application
#
# Type `mix help compile.app` for more information
def application do
[applications: [:logger]]
end
# Dependencies can be Hex packages:
#
# {:mydep, "~> 0.3.0"}
#
# Or git/path repositories:
#
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
#
# Type `mix help deps` for more examples and options
defp deps do
[{:mongo, "~> 0.5.1"}]
end
end
3.2 导入库
执行以下命令:
>mix deps.get
现在可以下载在3.2版本中设置的库了。虽然需要考虑依赖关系之类的问题,但是由于我们只会使用一个库,所以不用担心。
当被问及是否使用hex时,我认为是的…
据说local.hex可以与每个项目混合使用。
只提供一个中文的新表达方式:供参考,以下是命令的执行结果。
mongo_test\>mix deps.get
Could not find hex, which is needed to build dependency :mongo
Shall I install hex? [Yn] y
* creating c:/Users/Takes_000/.mix/archives/hex.ez
Running dependency resolution
Dependency resolution completed successfully
mongo: v0.5.1
bson: v0.4.3
* Getting mongo (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/mongo-0.5.1.tar)
Fetched package
Unpacked package tarball (c:/Users/Takes_000/.hex/packages/mongo-0.5.1.tar)
* Getting bson (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/bson-0.4.3.tar)
Fetched package
Unpacked package tarball (c:/Users/Takes_000/.hex/packages/bson-0.4.3.tar)
只需连接MongoDB的简单工作!!
4.1 创造Elixir源代码
我已经按照以下方式创建了 Elixir 的源代码。
mongo = Mongo.connect!
db = mongo |> Mongo.db("phoenix_bbs")
collection = db |> Mongo.Db.collection("comments")
Mongo.Server.close(mongo)
不好意思,這就是全部了…
這不像Ruby的風格,也完全沒有函數式語言的味道…
4.2 执行
使用以下命令以在mix中运行:
>mix run ./lib/mongo_test.ex
4.3 確認MongoDB
MongoDBに接続し、DBとCollectionが作成されたか確認してみる。
(接続時、DB、Collectionがない場合は作成されて接続される)
以下、一連のMongoDB操作の流れ
mongo_test>mongo
MongoDB shell version: 3.0.3
connecting to: test
\> db
test
\> show databases
local 0.078GB
phoenix_bbs 0.078GB
\> use phoenix_bbs
switched to db phoenix_bbs
\> show collections
comments
system.indexes
\>exit
問題なく作成されている。
CRUD操作はまた分かったら続きの記事を作成します。
不学习Markdown就不行啊,Qiita的Markdown。
追加记录
已经继续编写了CRUD操作。
接下来!这只是一个简单的任务,只需要用Elixir连接到MongoDB!
以上!!
以上东西!
以上内容!
以上所述!
以上所列!
以上所提及!
以上一切!
以下是我参考的网站:
https://github.com/checkiz/elixir-mongo