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')
有没有办法通过嵌入文档的日期反转ListField? 或者 只是反转列表字段?
最佳答案
在 mongoDB 中,您返回与 find 语句匹配的项目。所以做一个:
Example.objects().order_by('-comments__date')
您只是在最新评论日期之前订购 Example
对象。查询语言用于匹配,因此不会更改返回列表的结果/顺序。您可以使用 SortedListField如果您需要确保顺序,则可以确保列表在保存时排序。然而,这里可能存在竞争条件,因为它设置了整个列表。 $push
运算符是最好的,但这意味着注释将是一个堆栈,最旧的将附加到末尾。
可能需要一种替代模式,将评论
放在自己的集合中,或者在 mongoDB 2.2 中,聚合框架可用于对评论本身进行排序。
关于python - Mongoengine..反转ListField中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544030/