Mongodb 模式结构 - 推入和弹出
我想要一个类似下面的结构来存储我的数据:
name1:
- guid1 : [{ foo1}, {foo2}, .. {foo n}]
- guid2 : [{ foo1}, {foo2}, .. {foo n}]
(1) 每个 foo
对象都是有着相同内部结构的字典,所以我理想中是在 guid
下面有一个单独的字典,可以在里面添加更多的数据,但这似乎不太可能(或者说是可以的?)
(2) 我在处理数据时遇到困难 - 我不太确定怎么写查询才能只从 name1
中 pop
出一个特定的 guid
?
我在使用 pymongo,如果这有帮助的话。
1 个回答
1
我不是想给你添麻烦,但你有没有考虑过使用 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))
然后你可以获取你的 Name 对象,像处理普通对象一样遍历它的属性,删除和弹出 Guids,最后输入 Name.save() 来保存。