1. 자료형
몽고디비는 자바스크립트 문법을 사용하므로 자바스크립트의 자료형을 따릅니다.
그 외에 추가로 몇가지 자료형이 더 있습니다.
Date나 정규표현식 같은 자바스크립트 객체를 자료형으로 사용할 수 있고,
Binary Data, ObjectId, Int, Long, Decimal, Timestamp, Javascript 등의 추가적인 자료형이 있습니다.
( 추가적인 자료형 중에서 ObjectId와 Binary Data, Timestamp 외에는 잘 사용되지 않습니다. )
2. Create (생성)
컬렉션에 컬럼을 정의하지 않아도 되므로 컬렉션에는 아무 데이터나 넣을 수 있습니다.
1 ) 다큐먼트 생성 : db.컬렉션명.save(다큐먼트)
nodejs 데이터베이스안에 users 컬렉션안에 데이터를 추가하는 예시입니다.
몽고디비 프롬프트를 실행하며 다음 명령어를 실행해봅니다.
$ mongo
> use nodejs
switched to db nodejs
> db.users.save({ name: 'hyemin', age: 25, married: false, comment: '안녕하세요', createdAt: new Date() });
WriteResult({ "nInserted" :1 })
> db.users.save({ name: 'tufu', age: 8, married: false, comment: '난 두부', createdAt: new Date() });
WriteResult({ "nInserted" :1 })
2 ) 아이디 참조 후 데이터 추가
comments 컬렉션에도 데이터를 넣습니다. tufu의 댓글을 추가해봅니다.
> db.users.find({ name: 'tufu' }), { _id: 1 });
{ "_id" : ObjectId{"고유아이디"})
이렇게 아이디를 찾으면 tufu의 ObjectId 가 나옵니다.
ObjectId는 MySQL에서 기본키로 쓰이는 값과 비슷한 역할을 합니다.
> db.comments.save({ commenter: Objectid('고유 아이디'), comment: '안녕하세요 두부 댓글이에용', createdAt: new Date() });
WriteResult({ "nInserted" : 1 })
2. Read (조회)
방금 생성한 다큐먼트를 조회합니다.
1 ) 전체조회 : db.컬렉션명.find({})
컬렉션 내의 모든 다큐먼트를 조회하는 것 입니다.
2) 특정 필드 조회: db.컬렉션명.find({}, { 조회할 필드: true or false })
name과 married 값만 가져오길 원한다면, 아래와 같은 명령어를 활용하면 됩니다.
> db.users.find({}, {_id: 0, name: 1, married: 1});
3) 조회 시 조건 추가: db.컬렉션명.find({ 필드명: { 조건 } }, { 조회할 필드 })
조회 시 조건을 주려면 find 메서드의 첫번째 인자 객체에 기입해 주면 됩니다.
조회에 자주 쓰이는 연산자들은 아래와 같습니다.
- $gt : 초과
- $gte : 이상
- $lt : 미만
- $lte : 이하
- $ne : 같지 않음
- $or : 또는
- $in : 배열 요소 중 하나
age가 10 미만인 다큐먼트의 이름과 나이를 조회하는 예시,
> db.users.find({ age: { $lt: 10 }},{ _id: 0, name: 1, age: 1 });
or 연산을 사용해 10 미만이거나 married가 false인 경우를 조회하는 예시,
> db.users.find({ $or: [{ age: $lt: 10 }},{ married: false }] }, { _id: 0, name: 1, age: 1 });
-
sort : 정렬
내림차순은 -1, 오름차순은 1입니다.
> db.users.find({}, { _id: 0, name: 1, age: 1 }).sort({ age: -1 })
-
limit : 조회할 다큐먼트 개수 설정
1개만 조회할 때 예시
> db.users.find({}, { _id: 0, name: 1, age: 1 }).sort({ age: -1 }).limit(1)
-
skip : 몇 개를 건너뛸지 설정
한개 건너뛰고 조회하는 예시
> db.users.find({}, { _id: 0, name: 1, age: 1}).sort({ age: -1 }).limit(1).skip(1)
3. Update (수정): db.컬렉션명.update({ 수정할 다큐먼트 지정 }, { 수정할 내용을 입력 })
첫번째 객체는 수정할 다큐먼트를 지정하는 객체고, 두번째 객체는 수정할 내용을 입력하는 객체입니다.
$set이라는 연산자를 활용하면 어떤 필드를 수정할지 정할 수 있습니다.
$set을 사용하지 않고 일반 객체를 넣을 경우 다큐먼트가 통째로 두번째 객체로 인자로 주어진 객체로 수정됩니다.
일부 필드 수정을 원할 때는 반드시 $set 연산자를 활용해야 합니다.
comment만 수정하는 예시
> db.users.update({ name: 'tufu' }, { $set: { comment: '댓글 수정해보기' }});
4. Delete (삭제): db.컬렉션명.remove({ 삭제할 다큐먼트 })
삭제할 다큐먼트에 대한 정보가 담긴 객체를 첫번째 인자로 사용합니다.
> db.users.remove({ name: 'tufu' })
'DB > MongoDB' 카테고리의 다른 글
[MongoDB] Aggregate Pipeline 사용 2 ( $group / $match / $sort ) (0) | 2020.04.29 |
---|---|
[MongoDB] Aggregate Pipeline 사용 ( $project / $limit ) (0) | 2020.04.29 |
[MongoDB] aggregation란? (0) | 2020.04.29 |
[MongoDB] Mongoose란? (0) | 2020.03.19 |
[MongoDB] 몽고디비 시작하기 (0) | 2020.03.18 |