MongoDB query to return only embedded document
mongodb, pymongo
Solution
This same question was asked over on the Mongo DB Google Groups page. Apparently its not currently possible but it is planned for the future.
http://groups.google.com/group/mongodb-user/browse_thread/thread/4e6f5a0bac1abccc#
Problem
assume that i have a `BlogPost` model with zero-to-many embedded `Comment` documents. can i query for and have MongoDB return only `Comment` objects matching my query spec? eg, `db.blog_posts.find({"comment.submitter": "some_name"})` returns only a list of comments. edit: an example: ``` import pymongo connection = pymongo.Connection() db = connection['dvds'] db['dvds'].insert({'title': "The Hitchhikers Guide to the Galaxy", 'episodes': [{'title': "Episode 1", 'desc': "..."}, {'title': "Episode 2", 'desc': "..."}, {'title': "Episode 3", 'desc': "..."}, {'title': "Episode 4", 'desc': "..."}, {'title': "Episode 5", 'desc': "..."}, {'title': "Episode 6", 'desc': "..."}]}) episode = db['dvds'].find_one({'episodes.title': "Episode 1"}, fields=['episodes']) ``` in this example, `episode` is: ``` {u'_id': ObjectId('...'), u'episodes': [{u'desc': u'...', u'title': u'Episode 1'}, {u'desc': u'...', u'title': u'Episode 2'}, {u'desc': u'...', u'title': u'Episode 3'}, {u'desc': u'...', u'title': u'Episode 4'}, {u'desc': u'...', u'title': u'Episode 5'}, {u'desc': u'...', u'title': u'Episode 6'}]} ``` but i just want: ``` {u'desc': u'...', u'title': u'Episode 1'} ```