class Example(Document):
comments = ListField(field=EmbeddedDocumentField('Comment'), db_field='z')
class Comment(EmbeddedDocument):
comment = StringField()
date = DateTimeField()如何通过Comment EmbeddedDocument‘’date反转Comment listfield的结果?我的错误代码..就像..。
Example.objects().order_by('-comments__date')有没有办法通过嵌入文档的日期来反转ListField?或者只是反转listfield?
发布于 2012-03-05 16:18:36
在mongoDB中,返回与find语句匹配的项。因此,执行以下操作:
Example.objects().order_by('-comments__date')您只是按照最新的注释日期对Example对象进行了排序。查询语言用于匹配,因此不会更改返回列表的结果/顺序。如果您需要确保顺序,您可以使用SortedListField来确保列表在保存时被排序。然而,这里有一个可能的竞争条件,因为它设置了整个列表。$push运算符是最好的,但它意味着注释将是一个堆栈,并且最旧的将被附加到末尾。
对于自己的集合中的comments,可能需要另一种模式,或者在mongoDB 2.2中,可以使用聚合框架对注释本身进行排序。
发布于 2012-03-03 17:03:07
您应该尝试:
Example.objects().order_by('-comments.date')https://stackoverflow.com/questions/9544030
复制相似问题