2024-04-19 19:27:49 发布
网友
如果我有这些型号:
class Sub(EmbeddedDocument): name = StringField() class Main(Document): subs = ListField(EmbeddedDocumentField(Sub))
我想要一个查询,返回主节点,子节点按名称过滤
这将返回正确的干线,但sub始终是整个列表,而不是子集。我怎么才能只得到子集?我需要依赖列表理解吗?在
MongoDB不支持您所请求的操作,因此Mongoengine也不支持。在
可以对阵列(列表)执行切片操作,但不能执行特殊筛选。MongoDB数组中的切片工作方式与Python中的切片列表类似,您可以使用slice__关键字语法对Mongoengine执行此操作:
slice__
Main.objects.filter(subs__name__exists=True).fields(slice__subs=[0,2])
这将返回从索引0开始的subs(即第一个元素),然后返回两个元素。在
MongoDB不支持您所请求的操作,因此Mongoengine也不支持。在
可以对阵列(列表)执行切片操作,但不能执行特殊筛选。MongoDB数组中的切片工作方式与Python中的切片列表类似,您可以使用
slice__
关键字语法对Mongoengine执行此操作:这将返回从索引0开始的subs(即第一个元素),然后返回两个元素。在
相关问题 更多 >
编程相关推荐