MongoDB(몽고db)를 사용하면서 외부파일을 가져오거나 내보낼 경우가 있을 수 있습니다. 백업을 위한 경우도 있으며 아니면 서버를 이전하면서 기존의 데이터베이스를 마이그레이션(Migration)하려고 많은 데이터를 한번에 옮길 수도 있겠죠~ 그럼 아래는 어떻게 import 또는 export하는지 알아보겠습니다.참고로 비슷한 기능으로 mongodump, mongorestore 명령어가 있습니다. 이 명령어는 컬렉션 일부 등을 선택하여 보내거나 가져오는 목적과 달리 데이터베이스 전체를 내보내고 가져오는 경우에 많이 사용하니 참고하시기 바랍니다. 아래 링크를 참고하세요.링크 바로가기 >https://webisfree.com/2020-08-20/[mongodb]-몽고db-mongodump-그리고-mongores
Last Modified : 2021-04-05 10:40:30MongoDB를 사용하는 경우 서비스를 시작 또는 중지하는 방법입니다. OS에 따라 다를 수 있습니다.# Linux 환경아래 명령어는 mongodb의 시작, 재시작, 중지, 상태보기 등을 수행합니다.service mongodb startservice mongodb restartservice mongodb stopservice mongodb status? /var/run/mongodb/mongod.pid exists 에러가 발생하는 경우이 경우 인증, 퍼미션 부분이 해결되어야 합니다. 아래 명령어를 수행 후 다시 확인해보세요.sudo rm /var/run/mongodb/mongod.pidsudo chown mongod:mongod /tmp/mongodb-27017.sockservice mongod status
Last Modified : 2017-08-07 08:02:22몽고DB, MongoDB에서 Auth 사용시 즉 권한 설정이 되어 있는 경우 로그인 방법에 대하여 알아봅니다.먼저 username, password가 설정된 경우에 Shell에서 로그인하려면 인증(Auth)이 필요합니다. 이때 인증을 수행하여 Mongo Shell에 접속하는 방법은 아래와 같습니다.# MongoDB에 사용자, 패스워드로 로그인 방법아래에서 admin은 admin 권한으로 로그인하겠다는 뜻입니다. 뒤의 username과 패스워드를 사용해 mongodb에 접근하도록 합니다.> mongo admin -u username -p 'password'이때 password는 따옴표를 사용하여야 에러가 발생 안하므로 주의하여야 합니다. 위 방법대로 해야 에러가 안나고 Mongo Shell에 접속이 가능합니다
Last Modified : 2018-04-06 05:32:23여러이유가 있겠지만 MongoDB의 권한설정은 반드시 필요합니다. 대표적인 이유로 개발중에 remote ip가 필요한 경우가 Auth 설정은 필수적입니다.RemoteIp를 열어둔 경우 ip주소와 port만 알면 누구나 접속할 수 있어 해킹의 위험이 발생합니다. 외부 접속이 반드시 필요하다면 Auth를 사용하기 위해서 User 및 Password를 설정해야합니다.# MongoDB Auth 설정방법 알아보기먼저 아래는 Auth 설정에 필요한 단계입니다. 순서대로 필요한 과정을 설정해야합니다.1. admin 데이터베이스 선택2. 사용할 User 및 Password 추가하기3. auth 권한설정으로 mongoDB 실행하기위 과정은 몽고DB에서 권한 설정하여 사용하는 방법입니다. 자세하게 알아보겠습니다.! admin
Last Modified : 2018-04-06 05:14:00만약 MongoDB에서 특정 컬럼이 있거나 없는 경우의 쿼리문을 작성하고자 합니다. 어떻게 하면 컬럼의 존재 여부를 적용하여 찾을 수 있을까요? 아래에서 알아봅니다.# MongoDB에 없거나 있는 컬럼으로 쿼리문 작성쿼리문에 find()를 사용하여 일치하는 데이터를 가져오려고 합니다. 이때 name이라는 필드가 있는 경우의 데이터만 필요할 수 있겠죠. 아니면 반대로 name 이름의 컬럼이 없는 데이터만 가져와 name의 값을 추가할 필요도 있을 것입니다. 이때 사용 가능한 방법이 바로 $exists입니다.$exists // <boolean> 컬럼의 여부 바로 간단한 예제를 만들어 보겠습니다.!MongoDB 컬럼이 없는 경우의 데이터 불러오기아래는 쿼리문을 사용하여 만약 name 이름의 컬럼이 없는 경우만 해
Last Modified : 2020-10-21 11:50:06MongoDB 전체 개수를 가져오는 가장 쉬운 방법에 대하여 알아봅니다. 데이터베이스에서 가져온 컬렉션이 몇개인지 확인하려면 아래의 쿼리문을 사용합니다.# MongoDB에서 불러온 컬렉션의 전체개수불러온 collection의 개수를 알려면 count()를 사용하여 가능합니다.db.collection.count()예를들어 컬렉션이 가진 개수가 총 10개라면 위 결과는 10이 나타나게됩니다. 여러 방법들 중에서 가장 쉽고 많이 사용되는 방법이죠.
Last Modified : 2017-10-21 09:15:36개발환경을 한 곳이 아닌 여러 곳에 세팅 된 경우 파일 등은 git 또는 svn을 사용하여 작업하면 되지만 데이터베이스의 경우는 이런 방식을 적용하기 어렵습니다. remote 백업을 활용하는 방법 역시 있겠지만 업데이트가 빈번하다면 이것 역시 다소 번거로울 수 있죠. 이런 경우 외부에서 바로 데이터베이스에 접속하는 Remote Access를 활용하는 방법이 있습니다.# 리눅스 기준 MongoDB 외부 접속 가능하도록 변경하기 먼저 /etc/mongod.conf 파일에 접근하여 수정합니다.vim /etc/mongod.conf이제 bindIp 0.0.0.0과 같이 설정된 곳을 찾아 주석처리합니다.bindIp 0.0.0.0 // 변경 이전# bindIp 0.0.0.0 // 변경 후mongoDB
Last Modified : 2017-08-16 17:08:38데이터베이스로 사용되는 Redis와 MongoDB를 비교하는 글을 작성하려고 합니다.# Redis와 MongoDB 비교하기글을 시작하기에 앞서서 두 데이터베이스를 비교하는 것 자체는 무리가 있습니다. 그 이유는 보통 Redis와 MongoDB를 함께 사용하는 경우가 더 많기 때문입니다...이런 이유로 장점과 단점을 따지기는 조금 어렵습니다. 둘 다 사용하는 목적이 다르고 그 목적에 따라 각각의 장점을 지니고 있습니다.! 아래는 간략한 두 DB의 비교입니다.아래는 간략한 두 DB의 비교입니다. 두 개의 쓰임 및 목적에 차이가 있어 아무래도 비교보다는 어떤 장점이 있는지에 초점을 맞추었습니다.<table border="1"><tr><td bgcolor="#999" align="center">구분</td><td
Last Modified : 2020-07-23 23:25:31얼마 전 수 많은 데이터를 처리해야하는 웹사이트를 구축하면서 데이터베이스를 NoSQL, MongoDB로 처리하였습니다. MongoDB를 사용했던 이유는 조금이라도 빠르고 간단한 개발 프로세스가 목적이었죠. 혼자서 개발에 많은 시간을 최대한 줄이려면 상대적으로 NoSQL이 편하다고 생각했습니다.# NoSQL 성능 개선 및 팁 정리아래는 MongoDB를 사용하면서 겪었던 어려움과 성능 개선을 위한 방법들을 정리한 내용입니다. 이 중에서도 중요한 부분들을 위주로 적어보았습니다.! 정확하고 효과적인 인덱스 설정RDB와 마찬가지로 많은 데이터베이스가 인덱스 기능을 지원합니다. 산재된 수 많은 데이트를 검색할 때 인덱스를 설정한 것과 하지 않는 것은 검색이나 소팅을 수행할때 엄청난 속도 차이를 보여주게됩니다. 또한 인
Last Modified : 2018-03-12 23:19:27하나가 아닌 여러개의 값을 서버에서 받아 MongoDB에 저장하려고 합니다. 예를들어 다수의 글이나 목록 등을 저장하려면 어떻게하면 될까요? 먼저 클라이언트의 요청을 서버에 전달해야합니다. 만약 request로 데이터를 전달할때 다수의 값은 어떻게 받을 수 있을까요?# Python flask에서 배열로 값을 전달받기items로 전달된 값을 우리는 배열로 받아 저장해야합니다. 하나가 아니니까요... 원래 하나의 값은 아래처럼 받았었죠.request.form.get('item')하지만 이번에는 다수의 값이므로 배열로 받아 처리해야합니다. 아래 코드처럼 get을 getlist로 변경하여 수행합니다. 참고로 Django에서는 getList를 사용합니다. 이처럼 배열로 받는 경우는 여러개의 파일을 첨부하여 처리할때도
Last Modified : 2020-08-06 09:41:12간단한 몽고DB관련 명령어 및 MongoDB CLI(Command Line Interface)에서 사용 가능한 간단한 명령어들도 함께 알아보겠습니다. 먼저 데이터베이스를 조작하는 방법입니다.# 데이터베이스 관련 명령어 알아보기MongoDB CLI에서 출력, 조회를 비롯하여 생성, 삭제 등등의 다양한 명령어입니다. 아래에서 확인해보세요.! 설치된 모든 데이터베이스 리스트 출력하기존재하는 모든 데이터베이스를 보여줍니다.> show dbs> show databases아래와 같이 현재 MongoDB에 저장된 모든 데이터베이스의 이름과 크기를 출력합니다. 만약 local, test라는 데이터베이스를 가지는 경우라면 아래와 같이 나타납니다.local (empty)test 0.099GB여기서 local은 기본으
Last Modified : 2020-10-22 14:26:35몽고DB를 비롯하여 NoSQL 역시 다른 Database, RDBMS처럼 인덱스 설정이 필요합니다. 그렇지 않으면 Slow Query 등 검색, 소팅 단계에서 성능에 큰 차이가 발생할 수 있습니다. 아래는 MongoDB에 인덱스를 설정하는 방법과 조회, 추가 및 관련 예제를 자세히 알아봅니다.# MongoDB 인덱스 조회 및 확인하기가장 먼저 설정된 인덱스를 조회하기 위한 방법입니다. 현재 설정된 MongoDB의 인덱스를 확인하기 위해서는 getIndexes()를 사용합니다.> db.collection.getIndexes()명령어를 실행하면 아래와 같이 나타납니다.[ { 'v': 1, 'key': { '_id': 1 }, 'name': '_id', 'ns': 'co
Last Modified : 2020-12-23 13:20:32만약 MongoDB 데이터베이스에서 무작위로 아무 값이나 가져오려면 어떤 방법이 있을까요? 아래에서 한번 알아봅니다.# MongoDB 컬렉션에서 랜덤한 값 가져오기아래 방법은 가장 많이 사용되는 간단한 방법들입니다.! skip() size를 랜덤하게 바꾸는 방법다양한 방법이 존재하나 그 중에서 가장 쉽고 편리한 방법이라 할 수 있습니다. 만약 아이템의 개수가 총 100개라면 skip()값을 랜덤하게 0부터 99까지 설정하면 매우 쉽게 가능합니다. 그럼 아래 예제를 봐주세요.! MongoDB 데이터베이스 내용컬렉션 site에는 다음과 같이 총 3개의 값이 있다고 가정합니다. 우리는 여기서 랜덤한 값을 불러오려 합니다.* DB명 : site{ id: 1, name: web}{ id: 2, name: is
Last Modified : 2017-10-24 10:24:37MongoDB(몽고DB)에서 특정 문자열을 찾아 모든 row의 값 한 번에 바꾸려고 합니다. 어떻게 하면 될까요? 이 경우 find() 쿼리에 forEach() 루프를 사용하여 전체 row에서 특정 문자열을 replace()를 사용하여 변환할 수 있습니다. 다시 말해 아래의 두 가지 과정이 필요합니다.- forEach()를 사용하여 모든 row의 값을 변경하기- 찾아 변경하기 위해서 replace() 사용하기그럼 아래에서 자세히 알아보고 동시에 간단한 예제를 만들어 보겠습니다.! MongoDB 전체 문서에서 특정 문자열을 모두 변경하는 방법아래는 컬렉션 이름이 site인 MongoDB가 있습니다. 이제 replace()를 사용하여 이전 문자열을 변경할 문자열로 바꿀 수 있겠죠.db.site.find().f
Last Modified : 2021-02-03 13:08:47MongoDB에 접속하는 경우 만약 뒤늦게 Auth 설정을 하였다면 Python에서도 MongoDB에 Auth설정이 필요합니다. 아래는 Auth 설정된 MongoDB에 접속하는 방법입니다.# 기존 코드먼저 원래 설정된 MongoClient() 설정코드입니다.client = MongoClient('mongodb://127.0.0.1:27017') 위 코드는 변경 전 코드입니다. 설정된 Auth값의 id와 password를 MongoClient()에 아래와 같이 추가합니다.# 수정된 코드이제 Auth설정이 된 코드입니다. 앞에 user와 password정보를 추가합니다.client = MongoClient('mongodb://myUser:password1234@127.0.0.1:27017')위 예제는 id가 m
Last Modified : 2018-02-12 01:34:03요즘은 워낙 많이 사용되고 있는 nosql에 대하여 알아보겠습니다. 왜 NoSQL이 등장하였고 그 이유는 무엇이며 장점은 무었일까요...기존의 데이터베이스의 대부분은 거의 모두 RDBMS, 즉 관계형 데이터베이스입니다. 시작 역시 그러했고 아직까지 대부분의 기업이 NoSQL의 등장하였지만(Google을 예외) 대부분 RDBMS를 구축하여 사용하고 있습니다. 물론 두 가지 형태의 DB를 혼합하여 각자의 장점만을 이용하는 기업도 나타나고 있습니다. 구글처럼 말이죠~ 지금까지 주로 사용되던 관계형 데이터베이스 RDBMS는 데이터들을 단순히 저장하기 보다 좀 더 구조화, 분석화하여 기업의 필요에 좀 더 부합된 데이터베이스 시스템이였습니다. 그렇기 때문에 데이터를 분류하고 관리하는데 보다 효과적이라 할 수 있습니다
Last Modified : 2015-11-15 14:31:19어제 새롭게 서버 이전을 계획하던 웹페이지에 접속했더니 데이터베이스의 자료를 읽어오지 못하던 오류가 나타났습니다... 갑자기 무슨 일인가 싶어 db에 직접 연결해보니 사용하던 MongoDB의 collection이 존재하지 않더군요. 이게 무슨 일인가 싶었는데 컬렉션을 조회해보니 모르는 데이터베이스가 새로 생성되어 있었습니다. 그 이름이 JUST_READ_ME였습니다..."혹시 해킹?"불길한 마음에 내용을 읽어보니 제 데이터를 보관하고 있다는 내용입니다. 내용은 길지 않았고 너는 해킹을 당했으며 아래로 비트코인을 보내라는 내용이었습니다. 또한 문의사항은 secmail.pro라는 곳의 이메일 계정으로 보내도록 되어있더군요... 그래서 알았습니다. 해킹은 결코 남의 일이 아니라는 것을!# 어떻게 해킹을 당했는가다
Last Modified : 2017-08-16 17:02:01MongoDB에서 find()를 사용하여 원하는 문서를 검색할 때 하나의 필드가 아닌 여러개의 필드 안에서 값을 찾는 방법에 대하여 알아봅니다.예를들어 만약 webisfree라는 키워드를 mongodb에서 검색하고자 할때 제목뿐만 아니라 본문과 태그에서도 검색되도록 하기 위해서 여러개의 컬럼에서 검색이 되도록 하려면 쿼리문을 어떻게 작성하면 될까요?! $or를 사용하여 여러개의 컬럼에서 찾기이때 사용 가능한 방법이 바로 $or를 사용하는 방법입니다. 즉 쿼리에 or 조건을 사용해 여러개의 컬럼에서 모두 검색할 수 있겠죠. 만약 아래와 같이 데이터가 MongoDB에 존재하는 경우를 생각해봅니다.@ Collection: website{ title: '웹이즈프리', content: 'Hello, Hi, Goo
Last Modified : 2020-11-04 09:59:03웹사이트의 글을 읽다보면 이전글 또는 다음글로 이동하는 링크를 볼 수 있습니다. 만약 MongoDB를 사용하는 경우 이전 또는 다음글을 가져오려면 어떻게해야할까요?# MongoDB에서 이전글 다음글 구현방법아래의 쿼리문은 특정한 필드를 기준으로 이전 또는 다음에 위치한 아이템을 가져오는 방법입니다. 우선 아래와 같은 과정으로 수행합니다.1. 기준이 되는 글 찾기2. 이전 글 또는 다음글을 쿼리를 사용하여 찾기먼저 아래는 현재 글을 찾는 일반적인 쿼리문입니다. _id 필드명을 기준으로 이전 또는 다음 값을 찾아보려합니다.this_id = collection.find_one({'_id': myId})['_id']변수 this_id는 기준이 되는 글의 id값을 저장하고 있습니다. 이 id값을 기준으로 이전 또는
Last Modified : 2017-09-26 11:19:15MongoDB에서 삭제할 데이터가 있는 경우 remove()를 사용합니다. 만약 find()에 sort(), limit()이 적용된 값들을 삭제하려면 어떻게 할까요?# MongoDB 데이터에서 sort() limit() 적용된 값 삭제방법collection에 find()를 사용하면 커서 객체를 반환되며 여기에 sort(), limit()을 적용할 수 있습니다. 하지만 이렇게 찾아낸 결과값을 삭제하는 메소드는 없기때문에 이와 같은 방법으로 삭제할 수는 없겠죠. 그렇다면 다른 방법은 없을까요? 이 경우 toArray()와 map()을 사용하는 방법이 있습니다. 아래에서 알아보세요.! 배열로 변환 후 변수에 id값을 저장하여 삭제하기반환된 커서객체를 배열로 변환... map()을 사용하여 id값을 모두 반환합니다
Last Modified : 2018-02-17 06:31:35MongoDB client를 설치 후 접속하기 위해 mongo 커맨더를 입력할 경우 만약 아래와 같이 에러 메시지를 보았다면 어떻게 할까요?mongoclient couldn't connect to server이 경우 mongoclient에서 cli에 접속할 수 없기에 나타납니다. 원인은 몇 가지가 있을수있는데 아래와 같은 경우를 의심해야합니다.! MongoClient만 설치되고 서버에 서비스될 MongoDB가 설치되지 않은 경우이 경우 아래와 같이 mongodb를 설치하고 다시 시도하면 가능합니다. mongoclient는 서버 데이터베이스에 필요한 모든 기능이 아닌 커맨드라인 인터페이스를 제공합니다.sudo apt-get install mongodb! MongoDB 서비스가 동작중이지 않은 경우데이터베이스
Last Modified : 2018-02-12 02:44:26MongoDB에서 컬렉션 조건으로 검색할 경우 AND 및 OR 조건에 따른 정규표현식 검색 방법을 알아봅니다.먼저 아래를 봐주세요.nameStr: 'webisfree again';nameStr 필드가 다음의 값을 가지는 경우 검색 조건 AND, OR을 알아봅니다.! AND 조건을 수행하는 방법만약 web 그리고 again이 포함된 데이터를 찾을 경우 아래의 정규식을 사용합니다.nameStr.match(/(?=.*web)(?=.*again)/)정규식에서 사용하는 AND 조건식 방법입니다.! OR 조건을 수행하는 방법만약 web 또는 again이 포함된 데이터, 즉 OR 조건인 경우를 찾는다면 아래의 정규식을 사용합니다. 비슷해 보이나 중간에 | 기호가 있습니다.nameStr.match(/(?=.*w
Last Modified : 2020-11-03 17:43:07MongoDB에서 컬렉션 이름을 변경하려면 어떻게 하는지 알아봅니다.# MongodB 컬렉션 이름 변경하는 방법컬렉션 이름을 다른 것으로 바꾸는 방법입니다. 이 경우 renameCollection() 명령어를 사용합니다.db.myCollection.renameCollection('변경 할 컬렉션 이름')간단하게 예를들어 현재 posts라는 컬렉션이 존재하는 경우 이를 articles로 바꾸려면 mongo cli에 접속 후 아래와 같이 입력합니다.db.posts.renameCollection( "articles" )// Okay위와 같이 실행 후 기존 컬렉션 이름은 새롭게 변경됩니다.- 기존 컬렉션 이름 : posts- 변경 후 컬렉션 이름 : articles추가로 아래에서는 adminCommand()를 사용
Last Modified : 2020-07-17 21:37:27만약 AWS 환경에 아마존 리눅스를 사용하는 경우 MongoDB를 인스톨하는 경우 아래와 같이 수행합니다.먼저 Amazon Linux의 경우 기본적인 프로그램들이 미리 설치되어 있을 것입니다. 여기에 yum을 사용하여 MongoDB를 설치합니다. 먼저 리눅스 환경에 repository 설정을 완료하여야합니다./etc/yum.repos.d/mongodb-org-3.0.repo 파일을 생성한 후 아래의 설정을 추가합니다.파일을 생성할 경우 아래처럼 vim을 사용할 수 있을 것입니다.sudo vim /etc/yum.repos.d/mongodb-org-3.0.repo이제 repository에 대한 설정이 끝났습니다. 아래의 설정을 추가하세요.[mongodb-org-3.0]name=MongoDB Repositoryb
Last Modified : 2019-02-09 10:28:05MongoDB에서 두 개 이상의 컬렉션을 특정 필드 값을 기준으로 하나로 합치는 방법에 대하여 알아봅니다.# MongoDB 컬렉션 필드 기준 합치기컬렉션을 하나로 합치는 방법은 몇 가지가 있습니다. 그 중에서 csv나 엑셀 등의 포맷으로 변경하는 방법도 하나의 방법입니다.! Collection 엑셀, csv로 합치기말 그대로 csv, excel 포맷을 변경한 후 다시 합치는 방법입니다. 간략하게 설명하면 아래와 같습니다.하나. 여러 개의 MongoDB 컬렉션들을 텍스트 파일로 변경둘. 하나의 파일로 합친 다음 다시 MongoDB로 옮기기위와 같이 저 각 컬렉션 데이터를 csv나 엑셀로 변환하기 위해 먼저 모든 데이터를 export합니다. 그 후 일치 될 필드를 기준으로 vlookup을 사용해 추가할 값을 찾
Last Modified : 2020-07-30 20:51:42MongoDB를 사용하는 경우 만약 불필요한 컬럼이 존재할 수 있습니다. 예전에는 사용했었지만 현재는 사용하지 않는 경우의 필드가 그런 경우가 되겠죠.이 경우 더 이상 필요없는 컬럼은 바로 삭제하는 것이 좋을 것입니다. 그렇다면 어떻게 하면 MongoDB의 컬럼을 삭제할 수 있을까요? 아래에서 알아봅니다.# MongoDB 불필요한 컬럼 삭제하는 방법이때 많이 사용하는 방법 역시 update를 사용하는 쿼리문입니다. update는 컬렉션의 값을 새롭게 변경하거나 추가할 수도 있지만 반대로 삭제하는 것도 가능합니다. 이를 위해서 추가로 연산자 $unset을 사용해야 합니다.db.collection.update( { 'columnName': { '$exists': true } }, // 일치하는 컬럼, 필드를
Last Modified : 2021-04-11 19:38:32리눅스 ubuntu에 MongoDB를 설치하는 방법에 대하여 알아봅니다. 먼저 MongoDB의 설치시 알아야 할 부분은 무엇일까요?# MongoDB ubuntu Linux에 설치하는 방법MongoDB를 설치할 경우 주의할 부분이 있습니다. 바로 Version 확인 및 기존에 설치된 경우의 확인이 필요합니다. MongoDB는 버전에 따라 명령어 및 MongoClient 커맨드가 다를 수 있습니다. 가급적 최신 버전을 설치하는 것이 좋을 것입니다.먼저 최신버전을 설치하려면 apt-get을 사용하는 경우 패키지 정보를 받아오기 위해서 update부터 실행해야합니다. 또한 key 정보 역시 가져와야합니다.$ sudo apt-get update$ sudo apt-key adv --keyserver hkp://keys
Last Modified : 2019-08-06 00:09:08Python 앱에서 MongoDB를 사용하는 경우 불러온 커서 객체를 리스트 타입(배열)으로 변경하는 방법을 알아봅니다.! MongoDB 커서 리스트로 바꾸기먼저 리스트 타입으로 변경하는 이유는 무엇일까요? MongoDB의 레코드를 find() 등을 사용하여 여러 개로 불러오면 커서 객체가 반환됩니다. 그런데 이 값을 파이썬에서 변경하거나 json 등의 형태로 반환하기 위해서 리스트로 타입 변경을 하게 됩니다.이제 커서 객체를 리스트로 변경해보겠습니다. 이 경우 아래와 같이 두 가지 방법을 사용할 수 있습니다.@ list() 함수 사용하기먼저 list() 함수를 사용하는 방법입니다. db.myCollection.find()로 원하는 데이터를 반환한 경우 list()를 사용하여 타입을 변경합니다.results
Last Modified : 2020-11-09 16:31:44MongoDB에 대하여 알아봅니다.# MongoDB의 이해MongoDB는 HBase 기반의 구조를 갖는 NoSQL 데이터베이스입니다.MongoDB는 Document를 가지며 필드와 값으로 구성됩니다. 모습은 자바스크립트의 JSON과 비슷한 BSON(Binary JSON)으로 JSON의 이진 JSON을 말합니다. 필드의 경우 규칙이 있는데 null, 점기호(.), 달러기호($)를 사용할 수가 없습니다.Table 대신에 Collection이라는 관련있는 데이터의 모집을 갖습니다.# MongoDB NoSQL을 사용한 모델수립 계획높은 퍼포먼스를 위하여 모델수립이 매우 중요합니다.# MongoDB 기타내용데이터베이스의 성능, 확장 등을 고려하여 인덱싱, 샤딩, 복제등의 작업이 수반된다.인덱싱(Index
Last Modified : 2017-08-16 17:00:23NoSQL 설계시 많은 컬렉션과 크기가 큰 컬렉션 중 무엇이 더 나을까요?NoSQL은 컬렉션의 집합으로 이 고민은 아래처럼 관계형 데이터베이스 역시 대동소이 할 것입니다.다수의 테이블과 vs 필드가 많은 테이블컬렉션의 크기가 크다하여 성능에 큰 영향을 미치기 어렵겠지만 만약 컬렉션의 수가 크면서 동시에 많은 트랙젝션을 필요로 한다면 이는 분명 성능에 큰 영향을 미칠 수 있습니다. 또한 향후 데이터베이스, 서버의 분산, 확장성 등을 고려했을때 컬렉션의 크기를 줄이고 그 수를 늘리는 작업이 필요할 수 있을 것입니다.
Last Modified : 2017-08-16 17:00:46MongoDB 연산자 중 $text에 대하여 알아봅니다.# $text 연산자는?MongoDB를 사용하여 텍스트를 검색하는 경우 $text 연산자를 많이 사용합니다.그래서 MongoDB의 제목이나 본문 등 텍스트가 많은 경우에 원하는 텍스트를 검색할 때 매우 쉽게 검색 쿼리를 작성할 수 있도록 도와줍니다.가장 기본적인 $text 연산자 사용의 문법입니다.{ $text: { $search: <string>, $language: <string>, $caseSensitive: <boolean>, $diacriticSensitive: <boolean> }}간단하게 설명하면 아래와 같습니다.$search // 검색에 사용할 키워드 조건$language // 검색에 사용될 언어 설정$caseSe
Last Modified : 2021-02-16 15:04:34아래는 MongoDB에서 데이터베이스의 이름을 변경하는 방법을 알아봅니다.# MongoDB 데이터베이스 이름 변경하기아쉽게도 MongoDB의 데이터베이스 구조상의 이유로 데이터베이스 이름을 바꾸는 간단한 명령어가 존재하지 않습니다. 그 이유는 데이터베이스 이름이 사용하는 모든 컬렉션 및 데이터에 저장되기 때문인데 아래에서는 이를 대체할 방법을 알아봅니다.결국 다른 방법을 찾아야되는데 생각해 볼 수 있는 방법은 데이터베이스를 새로운 이름으로 복사, 클론하는 방법입니다. 하지만 이 기능 역시 Deprecated되어 4.0 이 전의 버전에서만 가능하므로 다른 방법을 찾아야합니다."더 이상 copyDatabase()를 사용할 수 없다"대안으로는 mongodump와 mongorestore를 사용하는 방법이 있습니다.
Last Modified : 2020-10-22 15:21:51Python 환경에서 MongoDB를 사용 할 경우 PyMongo를 사용합니다. 그런데 새로운 컴퓨터에 개발환경을 설정하는 과정에서 에러가 발생하였습니다."Collection, insert(or update) method not found"컬렉션에 사용할 메소드가 존재하지 않는다는 에러가 발생하였습니다. 새로운 개발 환경과의 차이점은 MongoDB 버전을 최신 버전인 5.0으로 바꾸었는데 아무래도 그 부분이 원인인 것 같았습니다. 확인해보니 기존에는 MongoDB 버전이 3이었습니다.! MongoDB 버전을 낮추고 다시 해보았으나 실패그래서 MongoDB 5.0을 삭제한 후 다시 3 버전으로 설치하였습니다. 재설치가 끝난 후 테스트를 해봐았는데 여전히 잘 동작하지 않고 해당 method가 컬렉션에 존재하지
Last Modified : 2022-01-23 19:17:15