我在一个字段中有一个大约7k DBRef的文档到其他对象。我想在查询DBRef字段时限制返回的对象数量,但我找不到明显的方法。
project = Project.objects.find({'id': 1})
users = project.users[:10]
在第2行,MongoEngine执行查询以检索所有用户而不仅仅是前10个。我该怎么做才能将查询限制为只检索前10个?
答案 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)
如果我理解正确,就无法返回一个字段的一部分。您可以选择要返回的字段,但无法指定一个字段的一部分。