레이블이 findOne인 게시물을 표시합니다. 모든 게시물 표시
레이블이 findOne인 게시물을 표시합니다. 모든 게시물 표시

2015년 11월 24일 화요일

몽고DB - Mongoose 사용법[ find와 findOne의 차이 ]

model폴더 밑에 notice.js- notice schema를 작성했다는 가정하에

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var mongoose = require('mongoose');
var bcrypt   = require('bcrypt-nodejs');
var Schema   = mongoose.Schema;
var validator = require('validator');
var noticeSchema = Schema({
        txt     : String,
        link    : String,
        to_t    : Number,
        del     : Number,
        nation  : String,
        v       : { type: Numberdefault0 }
    },{
        versionKey: false
});
mongoose.model('notice', noticeSchema);
 
cs

findOne을 사용시에는

1
2
3
4
5
6
7
8
9
10
11
12
require('../models/notices');
var notice = mongoose.model('notice');
notice.findOne({txt:"hello"}, function(err, notice_dt){
        if (err){            
            res.send(err);
        }else {
            if( notice_dt == null){
                ;
            }
        }
});
 
cs

db에서 자료을 찾았을 때
정보가 없는지를 아는 방법은 7번줄 처럼
notice_dt == null
을 사용합니다.

find를 사용시에는

1
2
3
4
5
6
7
8
9
10
11
12
13
14
require('../models/notices');
var notice = mongoose.model('notice');
notice.find({txt:"hello"}, function(err, notice_dt){
        if (err){            
            res.send(err);
        }else {
            if( notice_dt.length == 0){
                ;
            }else{
                console.log("notice text : ", notice_dt[0].txt);
            }
        }
});
 
cs

정보가 없는지를 아는 방법은 7번줄 처럼
 notice_dt.length == 0
를 사용합니다.
왜냐하면, notice_dt의 값이 배열로 넘어오기 때문입니다.