Структура схемы Mongodb - push и pop - PullRequest
0 голосов
/ 02 февраля 2011

Мне бы хотелось иметь что-то вроде следующей схемы для коллекции:

name1:
 - guid1 : [{ foo1}, {foo2}, .. {foo n}]
 - guid2 : [{ foo1}, {foo2}, .. {foo n}]

(1) Каждый из foo объектов - это словари с одинаковой внутренней структурой - и поэтому в идеале я хотел быу меня есть единственный словарь ниже guid, куда я мог бы добавить дополнительные данные - но это кажется невозможным (или это так?)

(2) Я борюсь с возможностью popdata -Я не уверен, как я могу структурировать запрос только на pop один guid off name1?

Я использую pymongo, если это уместно.

1 Ответ

1 голос
/ 02 февраля 2011

Не бросать гаечный ключ, но вы рассматривали возможность использования MongoEngine ? Он находится поверх pymongo и делает работу с mongoDB радостью. Проверьте это.

Итак, ваша декларация mongoengine будет выглядеть так:

from mongoengine import *                           

class Foo(EmbeddedDocument):                  
    #Declare your Foo properties here

class Guid(EmbeddedDocument):                  
    name = StringField()                 
    foos = ListField(EmbeddedDocumentField(Foo))                                    

class Name(Document):                          
    title = StringField(required=True)                                       
    guids = ListField(EmbeddedDocumentField(Guid))

Затем вы можете взять ваше Имя и пройтись по его свойствам как красивый объект, удалить и вытолкнуть Guids, затем набрать Name.save ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...