0

举个例子:

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

如果我想要“栏”字段:

>>> 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"}]'

这是故意的还是错误的?

顺便说一句,我提到as_pymongo是因为 to_json 使用它。

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

4

1 回答 1

0

尝试在“id”上使用“_id”。

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

编辑..

于 2013-06-28T16:27:53.623 回答