Звучит так, будто вы хотите что-то вроде объектно-реляционного картографа. Я являюсь основным автором одного Ming , но есть и несколько других для Python. В Ming вы можете сделать следующее, чтобы настроить отображение:
from ming import schema, Field
from ming.orm import (mapper, Mapper, RelationProperty,
ForeignIdProperty)
WikiDoc = collection(‘wiki_page', session,
Field('_id', schema.ObjectId()),
Field('title', str, index=True),
Field('text', str))
CommentDoc = collection(‘comment', session,
Field('_id', schema.ObjectId()),
Field('page_id', schema.ObjectId(), index=True),
Field('text', str))
class WikiPage(object): pass
class Comment(object): pass
ormsession.mapper(WikiPage, WikiDoc, properties=dict(
comments=RelationProperty('WikiComment')))
ormsession.mapper(Comment, CommentDoc, properties=dict(
page_id=ForeignIdProperty('WikiPage'),
page=RelationProperty('WikiPage')))
Mapper.compile_all()
Затем вы можете запросить какую-то конкретную страницу с помощью:
pg = WikiPage.query.get(title='MyPage')
pg.comments # loads comments via a second query from MongoDB
Ниже перечислены различные ODM, которые я знаю для MongoDB в Python.