Skip to content

Commit eb08a69

Browse files
committed
mongodb crud examples added
1 parent 193e6f1 commit eb08a69

File tree

4 files changed

+162
-0
lines changed

4 files changed

+162
-0
lines changed

database/mongodb/connect.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*jshint node: true*/
2+
'use strict';
3+
4+
var assert = require('assert');
5+
var MongoClient = require('mongodb').MongoClient;
6+
7+
MongoClient.connect('mongodb://localhost:27017/test', function(err, db){
8+
if(err) throw err;
9+
console.log('MongoDB에 연결됨');
10+
11+
db.close();
12+
});

database/mongodb/insert.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*jshint node: true*/
2+
'use strict';
3+
var assert = require('assert');
4+
var MongoClient = require('mongodb').MongoClient;
5+
6+
// insert
7+
var person = {name: '이성주', email: 'seongjoo@codebasic.io'};
8+
9+
MongoClient.connect('mongodb://localhost:27017/test', function(err, db){
10+
if(err) throw err;
11+
12+
var collection = db.collection('people');
13+
14+
collection.insert(person, function(err, result){
15+
if(err) throw err;
16+
17+
console.log(result);
18+
19+
assert.equal(1, result.result.n);
20+
assert.equal(1, result.ops.length);
21+
22+
db.close();
23+
});
24+
});
25+
26+
// insert many
27+
MongoClient.connect('mongodb://localhost:27017/test', function(err, db){
28+
if(err) throw err;
29+
30+
var collection = db.collection('demo');
31+
32+
collection.insertMany([
33+
{a: 1}, {a: 2}, {a: 3}
34+
], function(err, result){
35+
if(err) throw err;
36+
37+
console.log(result);
38+
39+
assert.equal(3, result.result.n);
40+
assert.equal(3, result.ops.length);
41+
42+
db.close();
43+
});
44+
});

database/mongodb/test-mongodb.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
const assert = require('assert');
2+
3+
describe('MongoDB', function(){
4+
const MongoClient = require('mongodb').MongoClient;
5+
const url = 'mongodb://localhost:27017';
6+
var db;
7+
8+
after(function(){
9+
db.close();
10+
db = null;
11+
});
12+
13+
it('connect', function(done){
14+
MongoClient.connect(url, function(err, mongodb){
15+
assert.ifError(err);
16+
db = mongodb;
17+
done();
18+
});
19+
});
20+
21+
describe('CRUD', function(){
22+
var collection;
23+
before(function(done){
24+
MongoClient.connect(url, function(err, mongodb){
25+
db = mongodb;
26+
collection = db.collection('documents');
27+
done();
28+
});
29+
});
30+
31+
describe('INSERT', function(){
32+
it('Single Document', function(done){
33+
var doc = {이름:'이성주', 이메일: 'seongjoo@codebasic.io'};
34+
collection.insert(doc, function(err, result){
35+
assert.ifError(err);
36+
assert.equal(1, result.result.n);
37+
done();
38+
});
39+
});
40+
it('Bulk', function(done){
41+
var docs = [{n: 1}, {n:2}, {n:3}];
42+
collection.insertMany(docs, function(err, result){
43+
assert.ifError(err);
44+
assert.equal(3, result.result.n);
45+
assert.equal(3, result.ops.length);
46+
done();
47+
});
48+
});
49+
});
50+
51+
describe('FIND', function(){
52+
it('Query Filter', function(done){
53+
collection.find({이름: '이성주'}, function(err, docs){
54+
assert.ifError(err);
55+
docs.forEach(function(d){
56+
assert.equal('이성주', d.이름);
57+
});
58+
done();
59+
});
60+
});
61+
});
62+
63+
describe('UPDATE', function(){
64+
it('One', function(done){
65+
collection.updateOne(
66+
{이름: '이성주'},
67+
{$set: {이메일: 'seongjoo@codebasic.co'}},
68+
function(err, result){
69+
assert.ifError(err);
70+
assert.equal(1, result.result.n);
71+
done();
72+
});
73+
});
74+
});
75+
76+
describe('REMOVE', function(){
77+
it('ONE', function(done){
78+
collection.deleteOne({이름: '이성주'}, function(err, result){
79+
assert.ifError(err);
80+
assert.equal(1, result.result.n);
81+
done();
82+
});
83+
});
84+
});
85+
});
86+
});

database/mongodb/update.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*jshint node: true*/
2+
'use strict';
3+
4+
var assert = require('assert');
5+
var MongoClient = require('mongodb').MongoClient;
6+
7+
MongoClient.connect('mongodb://localhost:27017/test', function(err, db){
8+
if(err) throw err;
9+
10+
var collection = db.collection('demo');
11+
12+
collection.updateOne({a: 2}, {$set: {b: 1}}, function(err, result){
13+
if(err) throw err;
14+
15+
assert.equal(1, result.result.n);
16+
console.log(result);
17+
18+
db.close();
19+
});
20+
});

0 commit comments

Comments
 (0)