DataBase 28

[Flask] pymongo objectid 로 게시글 찾기

몽고디비에서 도큐멘트를 생성할 때 자동적으로 priamry key 인 '_id'를 자동적으로 생성한다. 이걸 고유한 값으로 파이몽고에서 사용해줄려고 했지만, '_id'값은 ObjectId 객체이기 때문에 파이썬에서 인식도 되지않고, 이 오브젝트 아이디 객체를 클라이언트에게 고대로 보낼 수가 없어 에러가 났다. (Type error.... ㅠ) 이 objectid를 사용하기 위해서는 2가지 방법을 이용할 수 있다 1. Object to str 첫번째 방법은 간단하게, objectid 객체를 string타입으로 변환하여 사용하는 방법이다. # object to str post["_id"] = str(post["_id"]) post["count_heart"] = db.likes.count_documents({..

DataBase/MongoDB 2021.10.19

[MongoDB] Pymongo Array 특정 요소(인덱스) 삭제하기 - $pull array

몽고디비 컬렉션 필드를 Array, 즉 배열로 만든 후, 배열의 요소로 컬렉션을 가지는 구조이다. 특정 인덱스를 삭제하고 싶어, 인덱스를 구했지만, 따로 그럴 필요없이 $pull 제한자의 조건을 이용해 해결 $pull 제한자의 탐색범위가 생각보다 넓은 것 같다. db.events.update_one({'number': int(event_id_receive)}, {"$pull": {'join': {'username': my_username}}}) 참고 : https://answer-id.com/ko/56164145

DataBase/MongoDB 2021.10.18

MongoDB 설치하기

MongoDB 실행중 갑자기 알 수 없는 에러가 떳다..ㅠ erro code : network is unreachable. reason: couldn't connect to server localhost:27017, connection attempt failed: socketexception: error connecting to localhost 에러원인이 뭉개져서 제대로 보이지 않아, 이거저거 알아보던 중 모두 지우고 다시 설치하기로 했다..ㅠㅠ 몽고디비를 지우는 방법은, 서비스 중인 몽고디비를 종료하고 해야하지만, 몽고디비에 연결도 되지 않는 상황이기에 그냥 설치했던 몽고디비 폴더를 모조리 지워버렸다. 이제 다시 설치해보자 (윈도우 기준) 1. C드라이브에, 그림과 같이 data 라는 폴더를 만들고,..

DataBase/MongoDB 2021.10.13

[MongoDB] 특정 값 증가 - Update 메소드와 $inc 제한자 ( 조회 수, 좋아요)

몽고디비에서 Update 메소드를 사용할 때 값을 수정하기위해 $set을 이용하는데, 이 set이 제한자이다. 제한자의 종류는 다양하고 기능 또한 다양합니다. 제한자의 구체적인 용어는 '갱신 제한자'로, MongoDB에서 문서의 부분 갱신을 할때 매우 효율적으로 수행할 수 있도록 하는 개념이라고 합니다. '갱신 제한자의 종류' $set document에서 특정 키의 값을 수정합니다. 특정 키가 존재하지 않다면 새롭게 생성합니다. 특정 키의 데이터형도 수정할 수 있습니다. $unset document에서 특정 키와 값을 모두 제거합니다. $nc 배열에 사용되는 제한자로써, 지정된 키가 존재하는지 확인할 수 있습니다. $inc 이미 존재하는 키의 값을 수정하거나, 새로운 키를 생성합니다. $set과 비슷하지..

DataBase/MongoDB 2021.10.09

Mysql 중복 데이터 제거(같은 테이블 유사 데이터 제거)

db데이터를 조회했을 때 데이터가 중복으로 잘못 들어갔을 때 정말 화가난다. ㅂㄷㅂㄷ 중복된 행을 지우기 전에 먼저 중복이 존재하는지 알아야한다. Select 중복 데이터 조회 select * from CCTV a, CCTV b where a.name > b.name and a.lat = b.lat and a.lon = b.lon; 나는 lat 과 lon이라는 컬럼을 가지는 테이블 중에 중복된 데이터를 지우고자 한다. 간단하게 설명하면 a.name > b.name 은 auto_increment 속성을 가지는 ID이다. 나중에 들어온 값만 지우기 위한 조건 문이다. 뒤에는 and 연산자를 이용해 sql 다중 조건 연산을 해주었다. Delete 중복 데이터 삭제 delete a from AllTimeShop..

DataBase/Mysql 2021.09.23

SQL 과 NOSQL - 개념과 차이점

스파르타 내일배움캠프를 진행하면서 MongoDB를 배웠다. Mysql이 아닌 db를 처음 배우는 것이기에 깊이 들어가기전에 내가 배우고 있는 것이 무엇인지 파악하고 가야겠다. DataBase 쉽게 쉽게, 데이터 저장소 | 즉, 데이터를 모아둔 것을 의미한다. 예전 미국 전시상황에서, 데이터를 모아두어 도서관처럼 사용하기 시자한 것에서 유례되었다고 한다. DBMS (Database Management System) 데이터베이스 내의 데이를 접근하고, 정보를 제어하도록 해주는 소프트웨어 도구의 집합이다. 데이터를 점점 디저털로 바꿔서 저장하면서, 방대한 데이터를 효율적으로 관리하기 위한 도구이다. DBMS 종류 (흔히 사용하는 큰 줄기 2가지만) SQL 관계형 데이터베이스(RDBMS) 행(Column) 과 ..

DataBase/DB 2021.09.19

MongoDB란, - (MongDB 시작하기, Robo3T로 조작하기, 몽고디비 조작 CRUD)

MongoDB 와 Robo3T MongoDB, Robo3T mongodb는 화면에 보이지 않지만 가동되고있는 서버이다. 이런 MongoDb를 눈에보이고 제어하기 위한 툴이 Robo3T이다. MongoDB는 딕셔너리가 쌓이는 것이다. NoSql - (Not only Sql) MongoDB는 NoSql의 종류 중 하니인데, Sql처럼 정형화 되어있지 않고, 딕셔너리 형태로 데이터를 저장해두는 DB를 NoSql이라 한다. Sql 보다 조금더 자유로운 형태이지만, 일관성이 부족할 수 있다는 단점이 있다. Sql 과 NoSql의 차이.. NoSql이 조금 더 자유롭고, SQL은 정형화되어있는 데이터베이스 1. pymongo - MongoDB 와 Python 연동 파이썬에서 mongodb를 조작하기 위해선 pymo..

DataBase/MongoDB 2021.09.18

Mysql 테이블 이름 변경하기 (Table RENAME)

단일 테이블 이름 변경 (RENAME) RENAME TABLE old_table TO new_table; ex) rename table 24shop to AllTimeShop; 단일 테이블 이름 변경 (ALTER) ALTER TABLE old_table RENAME new_table; RENAME 과 ALTER RENAME의 차이 RENAME을 사용하면 다수의 테이블이름 변경이 가능하다. 다수 테이블 이름 변경 RENAME TABLE old_table1 TO new_table1, old_table2 TO new_table2, old_table3 TO new_table3;

DataBase/Mysql 2021.08.05

[Mysql] 기본 문법 데이터베이스 생성 및 테이블 조작(CREATE)

CREATE CREATE MySQL에서는 다음과 같은 CREATE 문을 사용하여 데이터베이스와 테이블을 만들 수 있습니다. 1. CREATE DATABASE 2. CREATE TABLE 데이터베이스 생성 CREATE DATABASE 문은 새로운 데이터베이스를 생성해 줍니다. 다음 예제는 Hotel이라는 새로운 데이터베이스를 생성하는 예제입니다. CREATE DATABASE 데이터베이스이름 ex) CREATE DATABASE Hotel; 데이터베이스의 선택 데이터베이스를 생성한 후에, 해당 데이터베이스를 사용하기 위해서는 우선 데이터베이스를 선택해야 합니다. MySQL에서는 USE 문을 사용하여 데이터베이스를 선택할 수 있습니다. USE 데이터베이스이름 ex) USE Hotel; 테이블 생성 데이터베이스는..

DataBase/Mysql 2021.08.03