문제점
mongodb에 저장되어있는 특정 쿼리를 사용하기위해 _ id를 꺼내야 하는데 value값이 ObjectId로 감싸져있어서 json방식으로 꺼낼 수 없다.
시도해본것
list(db.user.find({},{ id : False}))일 때 id가 ObjectId를 반환하지 않아서 사용이 가능하지만 id : True로 주는 순간 json규칙을 벗어나서 사용이 불가능해진다. id True 상태로 for문 돌려봤을 때 한줄만 값이 return되고 나머지는 출력되지 않았다.
해결
user_list = list(db.user.find({}))
count = len(user_list)
a = []
for user in user_list:
if len(a) < count:
id = str(user['_id'])
label = user['label']
box = user['box']
comment = user['comment']
doc = {
'id': id,
'label': label,
'box': box,
'comment' : comment
}
a.append(doc)
print(a)
return a
알게된것
구글링 했을때 ObjectId의 사용법에 관해서만 문서가 많이 나와서 스스로 해결하느라 시간이 많이걸렸다. 우선 find로 쿼리 전부를 가져온 다음에 count변수로 쿼리의 갯수를 카운트 한다. a 리스트는 for문으로 반복한 값을 담을 것이다. id는 str으로 변환한 _ id의 값이고 a.append(doc)을 이용해서 if문 반복이 끝날때까지 a 리스트에 값을 채운다. for문의 반복이 끝나면 값을 리턴해준다.