2014-04-10 19 views
5

Vì vậy, những gì tôi là sau khi có cái gì đó như:Mongoengine: Làm thế nào để sắp xếp Embedded danh sách tài liệu của lĩnh vực tài liệu Embedded

class Comment(EmbeddedDocument): 
    content = StringField() 
    upvotes = IntField() 
    pub_date = DateTimeField() 

class Post(Document): 
    title = StringField() 
    comments = SortedListField(EmbeddedDocumentField(Comment)) 
    post_date = DateTimeField() 

Theo mặc định, các loại này bằng các thứ tự thời gian nộp hồ sơ xét, nhưng tôi muốn thực hiện các SortedListField sắp xếp theo thuộc tính upvotes của tài liệu nhận xét được nhúng. Điều này có thể, và nếu như vậy làm thế nào để tôi đi về nó?

Trả lời

5

Đây thực sự là bao gồm trong unit tests nếu không muốn nói rõ ràng ngay từ documentation bản thân:

class Post(Document): 
    title = StringField() 
    comments = SortedListField(EmbeddedDocumentField(Comment) 
           ordering="upvotes", reverse=True) 
    post_date = DateTimeField() 

Vì vậy, thêm "đặt hàng" từ khóa cho phép lĩnh vực này để sắp xếp trên khi các mục được thay đổi để được xác định. Bạn cũng có thể muốn câu lệnh ngược lại để đảm bảo giá trị "upvotes" cao nhất cũng là giá trị đầu tiên.

Kiểm tra đơn vị thực sự hiển thị một số tập quán khác cũng như vậy luôn là nguồn tốt để tìm ra tập quán có thể che khuất.

Các vấn đề liên quan