사람은 망각의 동물이다

까먹지 말고 기록하자

mongodb 3

$lookup 사용하기

RDBS에서 테이블 A와 테이블 B의 데이터를 통합해서 보여주거나 조회할 때, join 을 사용한다. mongoDB 에서 RDBS의 join 처럼 두개 이상의 컬랙션의 데이터를 통합해서 조회할 때, $lookup 파이프를 사용할 수 있다. $lookup $lookup은 현재 컬랙션을 기준으로 다른 컬렉션의 정보를 입력하고 join 할 수 있다. $lookup은 mongoDB의 aggregate 에서 사용할 수 있는 파이프다. { $lookup: { from: , localField: , foreignField: , as: } } 예제 다음처럼 두 컬렉션이 주어질 때, School 정보와 함께 Student를 조회하고 싶을 때, $lookup 을 활용할 수 있다. Student 컬렉션 { _id: , na..

mongodb 2021.07.27

mongoengine의 .no_cache 옵션

mongoengine 은 쿼리 효율을 위해서 기본적으로 한번 조회한 결과 값을 queryset 에 캐시한다. projects = Project.objects.all()# This is Queryset [project for project in projects]# At this time, mongoengine get results and cached in Queryset # 2021-07-27T10:55:19.726024+09:00 QUERY 0ms | {'find': 'project', 'filter': {}, 'lsid': {'id': Binary(b'\xfa\x94_\xd2\x9b\x0fC8\x828s\x14\x06u\x1ab', 4)}, '$clusterTime': {'clusterTime': Ti..

mongoengine 2021.07.27

mongoengine(mongoDB) cursor not found 에러 해결

flask + mongoDB 조합으로 서버를 운용할 때, ODM(Object-Document Mapper) 도구로 mongoengine 을 사용하고 있다. 데이터 마이그레이션을 수행하는 중에 아래와 같은 오류가 발생했다. my processing fine but after some time it gives me an error. { MongoError: Cursor not found, cursor id: 62783806111 at Function.MongoError.create (/home/admin/Pictures/duplicayProj1/node_modules/mongoose/node_modules/mongodb-core/lib/error.js:31:11) at /home/admin/Pictures/..

mongoengine 2021.07.05