320x100
320x100
MongoDB
: 문서지향 저장소를 제공하는 NoSQL DBMS
: 배열, 날짜 등 기존 RDBMS에서 지원하지 않는 형태의 데이터도 저장 가능
: 스키마가 없어 필드를 추가하거나 제거하는 것이 매우 쉬움
ㆍ데이터 = Document
ㆍ데이터 저장형식 = BSON (Binary Json)
RDBMS와의 비교
ㆍtable = Collection
ㆍrow = JSON Document
ㆍcolumn = JSON field
ㆍprimary key = _id field
ㆍgroup by = aggregation
mongoose
: nodeJS에서 MongoDB를 사용할 수 있도록 지원하는 확장모듈 (ODM)
※ ODM (Object Document Mapping)
: document를 객체로 변환하는 역할의 모듈
mongoose의 특징
: 데이터 관리를 위해 스키마를 만들고 스키마로 모델을 만듦
: 모델을 통해 데이터를 객체화 시켜 데이터에 대한 접근 제공
mongoose 예제
var mongoose = require('mongoose');
var connection1 = mongoose.createConnection('mongodb://localhost/mydb1');
var connection2 = mongoose.createConnection('mongodb://localhost/mydb2');
// 스키마 정의
var Schema = mongoose.Schema, ObjectId = Schema.ObjectId;
var ArticleSchema = new Schema({
author: ObjectId,
title: String,
body: String,
date: Date
});
// 모델정의
var ArticleModel = mongoose.model('Article', ArticleScheme);
// 모델 사용
var instance = new ArticleModel();
instance.title = 'hello';
instance.save(function (err){
// save 실행 후 콜백 함수의 내용
});
instance.find({}, function(err, docs){
// find 실행 후 콜백 함수의 내용
});
// 데이터 검색
Model.find(query, fields, options, callback)
// 하나의 데이터만 검색
Model.findOne(query, fields, options, callback)
// some Document의 value filed가 5인 데이터에서 first field와 last field를 검색
Model.find({'some.value':5}, ['first','last'], function(err, docs){
// 콜백 함수의 내용
});
// 새로운 Document 생성
var article = new ArticleModel({title: "Title", body: "Contents"});
article.date = new Date();
article.save(function (err) {
if(err) {
return handleError(err);
}
// save() 성공 후 수행할 내용
});
// Document 삭제
ArticleModel.remove({title: "Title"}, function(err){
if(err){
return handleError(err);
}
// remove() 성공후 수행할 내용
})
Refference
300x250
728x90
'Database > MongoDB' 카테고리의 다른 글
리눅스에서 몽고 DB 쿼리 실행하기 (mongosh) (0) | 2024.06.26 |
---|---|
Realm에 대해 알아보자 (0) | 2023.02.12 |
SQL 쿼리와 비교하는 MongoDB 쿼리 (0) | 2022.09.25 |
MongoDB 기본 명령어 사용법 (DB / Collection / Document 다루기) (0) | 2022.09.25 |
몽고DB에 대한 개론 (0) | 2021.08.02 |