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
offname1
我正在使用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))