Javascript Mongodb模式结构-推送和弹出

Javascript Mongodb模式结构-推送和弹出,javascript,python,json,mongodb,Javascript,Python,Json,Mongodb,对于集合,我希望具有类似以下模式的内容: name1: - guid1 : [{ foo1}, {foo2}, .. {foo n}] - guid2 : [{ foo1}, {foo2}, .. {foo n}] (一) 每个foo对象都是具有相同内部结构的字典-因此理想情况下,我会在guid下面有一个字典,可以在其中添加额外的数据-但这似乎不可能(或者是吗?) (二) 我正在努力pop数据-我不知道如何才能将查询构造为仅pop单个guidoffname1 我正在使用pymongo,如果

对于集合,我希望具有类似以下模式的内容:

name1:
 - guid1 : [{ foo1}, {foo2}, .. {foo n}]
 - guid2 : [{ foo1}, {foo2}, .. {foo n}]
(一) 每个
foo
对象都是具有相同内部结构的字典-因此理想情况下,我会在
guid
下面有一个字典,可以在其中添加额外的数据-但这似乎不可能(或者是吗?)

(二) 我正在努力
pop
数据-我不知道如何才能将查询构造为仅
pop
单个
guid
off
name1


我正在使用pymongo,如果相关的话。

不是为了向你扔扳手,但是你考虑过使用它吗?它位于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))

然后,您可以获取您的名称并将其属性循环为nice对象,删除并弹出guid,然后键入Name.save()

您所说的“弹出”是什么意思?如果是mongo的$pop,那么就是删除数组的第一个/最后一个元素的操作,您就有了object(字典)。我刚刚意识到$pop工作正常(在我的代码中添加了一些小的附加),但我希望pop返回删除的值,但它没有返回,我想我必须从根本上改变我的数据结构——感谢这看起来很有趣是的,我根据你的问题尝试了一下。如果需要更多帮助,请告诉我。如果foo1在guid1和guid2中是同一个对象,则将Foo更改为实现文档,并将foos行更改为:foos=ListField(ReferenceField(Foo))