仅Mongoengine查询集+ to_json / as_pymongo缺少id

时间:2013-06-28 16:03:16

标签: python mongodb mongoengine

举个例子:

>>> class Doc(Document):
...    foo = StringField()
...    bar = StringField()

如果我想要“bar”字段:

>>> Doc(foo='foo', bar='bar').save()
>>> Doc.objects.only('bar').to_json()
'[{"bar": "bar"}]'

如果我想要“id”字段和“bar”:

>>> Doc.objects.only('id', 'bar').to_json()
'[{"bar": "bar"}]'

这是故意还是错误?

BTW,我提到as_pymongo因为to_json使用它。

编辑:删除了一个无用的问题。

1 个答案:

答案 0 :(得分:0)

尝试在'id'上使用'_id'。

背景:MongoDb调用它的内部“主键”“_id”以避免命名空间冲突(例如,你可以有一个名为“id”的字段)并表示它是一个mongodb内部...一些ORMS使用mongo_id用于直接访问该“_id”项。但是,是的,这是为了避免名称空间问题与非常常见的字段名称“id”。在您的查询的上下文中,您正在进行文字mongodb调用,因此它需要是'_id',因为它是它的真实姓名。

编辑..