포도가게의 개발일지

TypeError:Object of type, JSON serializable, Mongo DB로 받아온 object_id값 json으로 못보낼때 본문

DB

TypeError:Object of type, JSON serializable, Mongo DB로 받아온 object_id값 json으로 못보낼때

grape.store 2021. 7. 12. 15:38
반응형
results = []
    all_article = list(db.article.find({}))
    for document in all_article:
        document['_id'] = str(document['_id']) ## object_id -> string으로 변환
        results.append(document)
    return jsonify({'all':results})

게시글이나 각 컨텐츠에 고유의 id를 부여해주려다 id값이 안보내져 알아보니

object_id bson type으로 json으로 보낼 수 없었다.

 

그래서 위와 같이 mongoDB에서 받아온 데이터 값들에 object_id값을 전부 str으로 convert하여 json을 통해

보내주게 되었다 convert하는법은 다양한 방법이 있다

 

https://docs.mongodb.com/manual/reference/method/ObjectId/#objectid

 

이와 반대로 등록된 _id 값을 통해 mongoDB에서 데이터를 찾기 위해서는

from bson.objectid import ObjectId



def deleteapi():
    delete_receive = request.form['delete_give']
    # 지우기 - 예시
    db.article.delete_one({'_id': ObjectId(delete_receive)}) ##검색할때 _id str값을 objectID에 넣어줘야됨
    #print(delete_receive)
    return jsonify({'msg': '삭제완료'})

objectID 라이브러리를 임포트해준 후 str값인 delete_receive값을 ObjectId(str value)에 넣어줌으로써

mongoDB에서 대조하여 원하는 값을 찾을 수 있다.

 

자세한건 다음 포스팅때 json과 mongoDB에 더 자세히 다루어 보겠습니다.

'DB' 카테고리의 다른 글

Mysql query 작성  (0) 2021.11.07
NestJS: TypeOrm 메소드  (0) 2021.11.06
MongoDB pagination 기능 구현  (0) 2021.07.27
Flask-mongoDB image upload & GridFS  (0) 2021.07.21
Mongo DB 기본(1)  (0) 2021.07.03
Comments