2012-04-15 42 views
1

我的模型是關於頂部的電影Django的Mongoengine EmbeddedDocument查詢問題

列表
class Movie(Document): 
    title = StringField() 
     ... 
    ranks = ListField(EmbeddedDocumentField('Rank')) 

class Rank(EmbeddedDocument):  
    rank = IntField() 
    imdb_rating = FloatField() 
    date = StringField(required=True) 

我如何編寫一個查詢得到的只有電影有排名紀錄在今天?

+0

我認爲達林的是在暗示,良好的#1禮儀表明,一些你以前的問題現在可能需要一個被接受的答案。糾正我,如果我錯了達林。 – rossdavidh 2012-04-15 14:41:39

回答

1

我建議使用日期對象datetime而不是字符串,因爲它看起來更明確。無論哪種方式,你可以很容易地找到所有Movie文件與一個具有date匹配的今天,像這樣一個排名:

Movie.objects(ranks__date__gte=datetime.today().date()) # using DateTimeField 

Movie.objects(ranks__date="16/04/2012") # using StringField 
+0

它的工作原理!但是我怎樣才能在django模板中迭代結果來獲得今天每部電影的排名呢? – 2012-04-17 05:00:30

+0

好吧,MongoDB查詢返回文檔。 if語句可以循環匹配的行列。 – Ross 2012-04-17 15:00:47

+0

不要忘記標記爲回答以幫助他人搜索時.. – Ross 2012-04-18 12:57:14