본문 바로가기

과목/빅데이터

How to delete the embedded document in mongodb {"_id" : ObjectId("5b83e0491ca61552dca474cd"),"title" : "9","updated" : [ ],"date" : ISODate("2018-08-27T20:28:09.566+09:00"),"count" : 4,"comments" : [{"name" : "글쓴이","memo" : "1","_id" : ObjectId("5b9b2ae6f195ca40bcc43802"),"date" : ISODate("2018-09-14T12:28:38.985+09:00")}],"contents" : "9","__v" : 2} findOneAndDelete 함수를 아래처럼 쓰면 embedded document만 삭제되는 게 아니라 글이 통째로 삭제된다. db.collection.findOn..
Mongoose에서 findOneAndUpdate 사용하기 RDBMS에 익숙해지기 위해, MVC를 명확히 하기 위해 사용한 Mongoose에선 arrayFilters를 못 쓰는 것 같다...arrayFilters는 MongoDB에서 사용할 수 있는 함수다. 도큐먼트 내에 필드가 있고 그 필드가 array로 구성되어 있는 경우 그 array의 각 원소에 접근하기 위해 쓰는 함수다. 여튼 MongoDB에선 매우 잘 실행되었지만 Mongoose에선 arrayFilters가 먹히지 않아서 다른 방법을 찾았다. 일단 findOneAndUpdate()라는 함수에서 첫 인자로 어떤 도큐먼트를 찾을지 정해줬다.arrayFilters로 해당 도큐먼트의 array 원소 중 id가 일치하는 애를 찾았다. 그 원소의 memo라는 field를 갱신해줬다. 혹시나 하고 Mongoose를..
MongoDB findOneAndUpdate 1234567891011121314151617181920212223{ "_id" : ObjectId("5b77cf25cdc3bb21d0354be2"), "title" : "newnew", "updated" : [ ], "date" : ISODate("2018-08-18T16:47:49.841+09:00"), "count" : 389, "contents" : "new", "__v" : 18, "writer" : null, "comments" : [ { "name" : "글쓴이", "memo" : "!!!", "_id" : ObjectId("5b7be66d9ff77a3834943b8b"), "date" : ISODate("2018-08-21T19:16:13.788+09:00") } ],}Colored by ..
MongoDB update, findAndModify update 시 $set 설정을 안하면 사용자가 설정한 값만 덮어씌워진다. 해당 field만 바꾸고 싶다면 꼭 $set 붙여야 함. findAndModify도 마찬가지. 첫번째 인자는 찾을 값이다. 투어팁스라는 이름을 찾았다. 두번째 인자는 바꿀 값이다. url, name, explain, category 등의 field를 변경한다.12db.recommendsites.update({name:'투어팁스'},{url:'https://www.jobkorea.co.kr/',name:'jobkorea',explain:'취업 포털',category:'getjob'})cs 만약 name이라는 특정 field만 변경하고 싶다면 12db.recommendsites.update({name:'투어팁스'},{$set:{exp..
MongoDB 문장 속에 있는 일치하는 단어 찾기 regex pattern for finding a specific word that belong somewhere. db.products.find( { sku: { $regex: /789$/ } } )database의 collection이 products, field가 sku인 데이터 중에서 789로 끝나는 단어 검색ex abc789, aaaa789, 789789, 789SELECT * FROM products WHERE sku like "%789";SQL에서는 위와 같이 사용 db.products.find( { sku: { $regex: /^ABC/i } } )field가 sku인 데이터 중에서 ABC로 시작하는 단어 검색, i는 case-insentive(대소문자 구분 안함), ABC나 abc 등이 가능ex ABC, ABC123, abc123 다른 방법1db.listings.aggregate([{$match:{fi..
NoSQL RDBMS 비교 https://docs.mongodb.com/manual/reference/sql-comparison/
Hadoop Mapreduce 개요 하둡의 분산 배치 프레임워크 상부는 MapReduce하부는 Hadoop Distribute File System 상부 하부를 합쳐 하둡. 2004년 구글의 논문 'Mapreduce 대형 클러스터에서의 단순 데이터 처리'Doug cutting : 오픈 소스 검색 엔진을 만들려고 Nutch 프로젝트를 함.검색해서 빠르게 접근하기 위해 인덱스 테이블을 잘 만들어야 함. 메타 데이터를 로컬로 가져 와야 함 -> 크롤러. 데이터를 잘 가져와서 검색한 내용을 잘 보여줘야한다. 메타 데이터는 멀쩡하지만 사이트 페이지가 사라지면 404 Error가 뜬다. 컴퓨터를 확장시키기 위해 인덱스 테이블을 매번 만들고 프로그램을 다시 짜야하는 불편이 있다. Doug cutting은 위 논문을 보고 Hadoop을 만듦. Hadoo..
빅 데이터 강의 실리콘밸리를 가라, 구글 입사 서류를 써라 크게 세가지 분야데이터 프로그래머 : 데이터 분석용 프로그램 작성 파이썬 자바 스칼라 사용데이터 분석가 : 데이터 마이닝, 인공지능, 통계학. 데이터 타입(수치형, 카테고리) 어떤 알고리즘을 적용하는 것이 맞는지 방법론 구성데이터 아키텍트 : 데이터 분석을 위해 어떤 구조를 쓸 것인가. 하둡, 스파크를 알아야 함. 빅데이터에서는 RDBMS 포맷을 쓰지 않음 Nosql Hbase 카산드라 사용함. 세가지 분야를 다 할 줄 알면 데이터 사이언티스트.보통 데이터 프로그래머와 분석가를 분리하지 않음. 빅 데이터의 이해2007년부터 데이터 생산량이 저장 공간을 넘어섬. 기존의 데이터를 삭제해야할 시기가 옴. 이 데이터를 분석 관리하기 위해 하둡이 나오기 시작함. 뉴칼라 ..