class Example(Document):
comments = ListField(field=EmbeddedDocumentField('Comment'), db_field='z')
class Comment(EmbeddedDocument):
comment = StringField()
date = DateTimeField()
如何通过Comment EmbeddedDocument'date反转注释列表字段的结果?
我不正确的代码..就像
Example.objects().order_by('-comments__date')
有没有一种方法可以通过EmbeddedDocument的日期反转ListField?
要么
只是反向列表字段?
最佳答案
在mongoDB中,您返回与find语句匹配的项目。这样做:
Example.objects().order_by('-comments__date')
您只是在最新评论日期之前订购
Example
对象。查询语言用于匹配,因此不会更改返回列表的结果/顺序。如果需要确保顺序,可以使用SortedListField确保列表在保存时进行排序。但是,这里可能会出现竞争状况,因为它会设置整个列表。 $push
运算符是最好的,但是这意味着注释将是一个堆栈,并且最早的注释将附加到末尾。在自己的集合中或在mongoDB 2.2中,可能需要使用
comments
的替代模式,聚合框架可用于对注释本身进行排序。关于python - Mongoengine ..反转ListField中的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9544030/