-
(MongoDB) Python에서 mongodb에 images(files)를 넣을 때 inserted_id 사용하는 방법IT 지식 창고 2021. 1. 4. 19:20
보통 mongodb에 python으로 images또는 files을 넣으려면 GridFS라는 라이브러리를 활용할 것입니다.
pymongo를 사용하여 document(data)를 넣을 때 insert_one()과 같은 함수를 사용하고, .inserted_id를 사용하면 넣은 document의 id를 얻을 수 있습니다.
하지만 gridfs의 put기능을 사용하면 inserted_id는 없습니다.
def put(self, data, **kwargs): """Put data in GridFS as a new file. Equivalent to doing:: try: f = new_file(**kwargs) f.write(data) finally: f.close() `data` can be either an instance of :class:`str` (:class:`bytes` in python 3) or a file-like object providing a :meth:`read` method. If an `encoding` keyword argument is passed, `data` can also be a :class:`unicode` (:class:`str` in python 3) instance, which will be encoded as `encoding` before being written. Any keyword arguments will be passed through to the created file - see :meth:`~gridfs.grid_file.GridIn` for possible arguments. Returns the ``"_id"`` of the created file. If the ``"_id"`` of the file is manually specified, it must not already exist in GridFS. Otherwise :class:`~gridfs.errors.FileExists` is raised. :Parameters: - `data`: data to be written as a file. - `**kwargs` (optional): keyword arguments for file creation .. versionchanged:: 3.0 w=0 writes to GridFS are now prohibited. """ grid_file = GridIn( self.__collection, disable_md5=self.__disable_md5, **kwargs) try: grid_file.write(data) finally: grid_file.close() return grid_file._id
GridFS의 put에서 마지막에 reutrn grid_file._id를 합니다.
이것으로 inserted_id의 역할을 할 수 있습니다.
즉, 아래와 같이 inserted_id를 얻을 수 있습니다.
client = MongoClient(host=host, port=port, username=username, password=password) db = client["dbname"] grid_fs = GridFS(db, "collection_name") inserted_id = grid_fs.put(data, values) print(inserted_id)
'IT 지식 창고' 카테고리의 다른 글
(pytorch) window에 fairseq 설치방법 (0) 2021.02.19 (선형대수학) 고유값분해 이해를 위해 잘 작성된 게시글 링크 (0) 2021.02.09 (MongoDB) Window에서 MongoDB 4.x 사용자 계정 생성 - service사용 시 (0) 2020.12.18 (MongoDB) window service 설치 및 삭제하고 재설치 방법 (0) 2020.12.18 (MongoDB) window service 설치, 미 설치 실행법 차이 (0) 2020.12.18 댓글