这只是连接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

bannerAds