IT 프로그래밍/빅데이터

[Bigdata 저장] MongoDB : Link구조 한번에정리

잉휴 2021. 3. 9. 10:52

<Insert 하기>

db.dept.insert({deptno:10,dname:'영업',loc:'1층'})
o=db.emp_dept_link1.findOne({deptno:10})

다음 두 문장을 입력하면 _id가 자동생성된다.

그 아이디를 가지고 아래 insert문처럼 'link' 해주면 된다

db.emp.insert(
	{deptno:10,
	items:[
	{eno:1,ename:"aaa",sal:1000,position:"부장"},
	{eno:2,ename:"bbb",sal:800,position:"과장"},
	{eno:6,ename:"fff",sal:400,position:"대리"}],
	deptno_id:ObjectId("6046d118b06842ef69baac4d")
});

 

<출력하기>

결과는 db.emp.findOne({deptno_id:o._id}) 로 출력할 수 있다.

여기서 id는 이 데이터의 Primary key라고 보면 된다

출력화면

 

<그 외의 방법>

다음은 id값을 직접 연결하지 않고도

위와 같은 출력을 하는 방법이다.

db.dept.insert({deptno:20,dname:'기획',loc:'2층'})
o=db.dept.findOne({deptno:20})

ObjectId("6046d7de5ddf8bc5efdaaa94")

db.emp.insert(
	{deptno:20,
	items:[
	{eno:3,ename:"ccc",sal:800,position:"과장"},
	{eno:5,ename:"eee",sal:500,position:"대리"}],
	deptno_id:o._id
});
db.emp.findOne({deptno_id:o._id})

※주의할 점

findOne을 반드시 camelcase(대문자-소문자 구분)로 써야 함수가 적용된다

 

Link장단점

도큐먼트 크기에 제한 받지 않는다

매번 Link해야 하기 때문에 관리비용이 많이 든다

->별도로 처리되는 데이터 구조에 적합