मोंगो उप-दस्तावेजों को वापस करने का समर्थन नहीं करता है। आप फ़िल्टर करने के लिए $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']