12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.jsでDB(MongoDB)を使ってみた

Posted at

1. インストール

インストール用のファイルを設定。
sudo vim /etc/yum.repos.d/mongodb-org-3.4.repo

mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

インストールを実施。
sudo yum -y install mongodb-org

JavascriptからMongoDBを利用するためのドライバーを追加。
npm install mongodb

2. データベース準備

2-1. データベース作成

use testdb
※DBが存在しない場合、自動的に作られる。

2-2. コレクション作成(テーブルのようなもの)

db.createCollection('testCollection')

3. プログラムから利用

3-1. INSERT

obj に登録したいデータを入れたらOKです。
レコードごとにカラム(フィールド)が異なっていても登録できます。
例えば、一行目は「name, age」、二行目は「name, address」ということも出来ます。

insert.js
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("testdb");
  var obj = { name: "Company Inc", address: "Highway 37" };
  // ----------------------------------------------------------------------
  // INSERT
  // ----------------------------------------------------------------------
  dbo.collection("testCollection").insertOne(obj , function(err, res) {
    if (err) throw err;
    db.close();
  });
});

ターミナルで node insert.js を実行。

3-2. SELECT

obj に検索条件のキーと値を入れてfind に渡すと取得できます。
結果はresult に入っています。

select.js
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("testdb");
  var obj = {name: "Company Inc"};
  // ----------------------------------------------------------------------
  // SELECT
  // ----------------------------------------------------------------------
  dbo.collection("testCollection").find(obj).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

ターミナルで node select.js を実行。

3-3. UPDATE

where に更新条件のキーと値を入れます。
set に更新したいキー(カラム名)と値を入れます。
updateMany の第一引数にwhere 、第二引数にset を渡すと、
条件に合致するドキュメント(レコード)がすべて更新されます。
$set というキーの値として、更新用のオブジェクトを指定することで、
特定のフィールド(カラム)のみ更新することが出来ます。
※$setを利用しないとレコードがまるごと更新用のオブジェクトで上書きされます。

update.js
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("testdb");
  var where = {name: "Company Inc"};
  var set = {$set: {address: "update address!"}};
  // ----------------------------------------------------------------------
  // UPDATE
  // ----------------------------------------------------------------------
  dbo.collection("testCollection").updateMany(where, set, function(err, result) {
    if (err) throw err;
    console.log("update");
    db.close();
  });
});

ターミナルで node update.js を実行。

3-4. DELETE

where に削除条件のキーと値を入れます。
deleteMany の第一引数に渡すと、条件に合致するドキュメント(レコード)がすべて削除されます。

delete.js
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("testdb");
  var where = {address: "update address!"};
  // ----------------------------------------------------------------------
  // DELETE
  // ----------------------------------------------------------------------
  dbo.collection("testCollection").deleteMany(where, function(err, result) {
    if (err) throw err;
    console.log("delete");
    db.close();
  });
});

ターミナルで node delete.js を実行。

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?