이전 블로그포스팅에서 getSiblingDB라는 db object를 반환하는 method에 대해서 알아보았다.
상기 method를 사용해서 서로 다른 database의 데이터를 비교하는 구문을 만들어보자
요구사항
- students database와 teacher database가 존재
- students에는 list라는 collection이 존재하고 student정보가 들어 있음
- teacher에는 list라는 collection이 존재하고 teacher정보가 들어있음
- 각 collection에 존재하는 lecture이 동일한 값에 대해서 print해보기
각 데이터 예시
db.getSiblingDB('students').list.findOne()
{
"name": "wonyoung",
"id" : 10012314,
"age" : 24,
"lecture" : "math"
}
db.getSiblingDB('teacher').list.findOne()
{
"name": "soming",
"id" : 5001234,
"age" : 34,
"lecture" : "math"
}
서로 다른 database에서 value 비교하기
상기 데이터 예시와 같이 존재한다고 했을때, students의 데이터와 teacher의 데이터의 lecture value값이 동일 할 경우 student의 name을 뽑아낸다면 아래와 같이 코드를 짜면 된다.
db.getSiblingDB('students').service.find().forEach(function(obj1){
db.getSiblingDB('teachers').service.find().forEach(function(obj2){
if(obj1.lecture == obj2.lecture){
print(obj1.name)
}
});
});
결과물
wonyoung
반응형
'빅데이터 > nosql' 카테고리의 다른 글
pymongo - find결과로 나온 데이터의 ObjectId()를 string으로 변경하기 (2) | 2020.05.13 |
---|---|
mongodb shell에서 printjson을 사용하여 BSON을 text로 보기 (0) | 2019.09.02 |
mongodb shell에서 array로 정의한 multi db 검색하기 (0) | 2019.09.02 |
mongodb shell에서 db 이름 명시하여 데이터 조회하기 (423) | 2019.08.22 |
NoSQL강의) mongoDB에서 data 모델링하는 방법. 예제포함. (362) | 2019.07.25 |
NoSQL강의) mongoDB 개요 및 설명 한페이지에 끝내기(mapReduce, aggregate 예제 포함) (407) | 2019.07.23 |