MongoEngine:限制DBRef的响应数量

时间:2014-11-19 15:50:31

标签: python mongodb mongoengine flask-mongoengine

我在一个字段中有一个大约7k DBRef的文档到其他对象。我想在查询DBRef字段时限制返回的对象数量,但我找不到明显的方法。

project = Project.objects.find({'id': 1})
users = project.users[:10]

在第2行,MongoEngine执行查询以检索所有用户而不仅仅是前10个。我该怎么做才能将查询限制为只检索前10个?

2 个答案:

答案 0 :(得分:2)

  

users = project.users [:10],

此操作是客户端操作,在users数组上执行,该数组包含7k DBRefs返回的所有mongodb值。

  

如何限制查询只能检索前10个<?em>

您需要添加projection操作,才能选择10数组中的第一个users元素。

Project.objects.find({"id": 1},{"users":{"$slice":10}})

MongoEngine中的语法:

Project.objects(id=1).fields(slice__users[0,10])

答案 1 :(得分:0)

如果我理解正确,就无法返回一个字段的一部分。您可以选择要返回的字段,但无法指定一个字段的一部分。