MongoDB
JSON 형태인 Document를 저장한다.
- 스키마를 따로 정의하지 않아 각 Collection에 대한 정의가 필요하지 않음
- JSON 형식으로 쿼리 작성 가능
- _id 필드가 Primary Key 역할을 함
[예제] RDBMS와 NRDBMS 비교
RDBMS: SELECT * FROM inventory WHERE status = "A" and qty < 30;
MongoDB: db.inventory.find( { $and: [ { status: "A"}, { qty: { $lt: 30} } ] } )
MongoDB 연산자
[비교연산자]
$eq: 지정된 값과 같은 값을 찾는다. equal
$in: 배열 안의 값들과 일치하는 값을 찾는다. in
$ne: 지정된 값과 같지 않은 값을 찾는다. not equal
$nin: 배열 안의 값들과 일치하지 않는 값을 찾는다. not in
[논리연산자]
$and: AND
$not: NOT
$nor: XOR
$or: OR
[Element]
$exists: 지정된 필드가 있는 문서 찾기
$type: 지정된 필드가 지정된 유형인 문서 선택
[Evaluation]
$expr: 쿼리 언어 내에서 집계 식을 사용할 수 있음
$regex: 지정된 정규식과 일치하는 문서 선택
$test: 지정된 텍스트 검색
1. SELECT
[SQL]: SELECT * FROM account;
[MongoDB]: db.account.find()
[SQL]: SELECT * FROM account WHERE user_id="admin";
[MongoDB]: db.acount.find( {user_id: "admin"} )
[SQL]: SELECT user_idx FROM account WHERE user_id="admin";
[MongoDB]: db.account.find( { user_id: "admin" }, { user_idx:1, _id:0 } )
2. INSERT
[SQL]: INSERT INTO account(user_id, user_pw) VALUES ("guest", "guest");
[MongoDB]: db.account.insert({ user_id: "guest", user_pw: "guest" })
3. DELETE
[SQL]: DELETE FROM account;
[MongoDB]: db.account.remove()
[SQL]: DELETE FROM account WHERE user_id="guest";
[MaogoDB]: db.account.remove( {user_id: "guest"} )
4. UPDATE
[SQL]: UPDATE account SET user_id="guest2" WHERE user_idx=2;
[MongoDB]: db.account.update( {user_idx: 2}, { $set: { user_id: "guest2" } } )
빡치니까 비관계DBMS는 하지말자
좀 진정하고 하자
dreamhack webstrack
'보안 > 웹·모바일' 카테고리의 다른 글
Union SQL Injection 실습 (0) | 2022.07.14 |
---|---|
Error-based SQL Injection 실습 (0) | 2022.07.12 |
Blind SQL Injection (0) | 2022.07.08 |
CSRF(Cross-Site Request Forgery) (0) | 2022.07.07 |
XSS(Cross-Site Scripting) 기초 공부 (0) | 2022.07.07 |