Mongo не поддържа връщане на поддокументи. Можете да използвате $elemMatch за филтриране, така че да се връщат само документи със съответстващи атрибути, но ще трябва сами да вземете коментарите. Можете леко да оптимизирате, като върнете само полето за коментари, както следва:
query = Book.query.filter({Book.comments:{'$elemMatch':{Comment.user_id:'user_c'}}})
query = query.fields(Book.comments.elem_match({Comment.user_id:'user_c'}))
result = query.limit(1).first()
print 'query result:', result.comments
Обърнете внимание, че имаше грешка с това до 0.14.3 (която току-що пуснах преди няколко минути), което щеше да доведе до неработенето на results.comments.
Друга много важна забележка е, че elem_match, който правя там, връща само първия съвпадащ елемент. Ако искате всички съответстващи елементи, трябва сами да ги филтрирате:
query = Book.query.filter({Book.comments:{'$elemMatch':{Comment.user_id:'user_c'}}})
result = query.limit(1).first()
print 'query result:', [c for c in result.comments if c.user_id == 'user_c']