0

ネストされたドキュメントを並べ替える方法:

produits = self.db.users.find({"email":email}, {"produit_up":1,"_id":0}).sort(("produit_up.namep"), pymongo.DESCENDING)

これは動作しません!

これが私のスキーマです:

user={
"pseudo":pseudo,
"email":email, 
"avatar":avatar_id
"produit_up":{
"namep":namep, 
"prix":prix, 
}
}

すべてが並べ替えなしで機能しました。produits=self.db.users.find_one({"email":email})["produit_up"]を使用し、テンプレートでは次のように呼び出します。

{% for produit in list(produits) %}
{{ produit["namep"] }}  
{{ produit["prix"] }}
....
{% end %}

SORTだから、私が使用してから、例えばまたはLIMITを返す場合、どのように私は同じことをするのですか?namepprix

4

2 に答える 2

1
# find_one document with sort.
db.produit.find_one({"email": "email"}, { "produit_up" : 1,"_id" : 0 }, sort=[("produit_up.namep", 1)])

# find all document with sort and limit at last 10 document.
db.produit.find({"email": "email"}, { "produit_up" : 1,"_id" : 0 }, sort=[("produit_up.namep", 1)]).limit(10)
于 2012-09-05T14:21:49.783 に答える
0

わかりました。ヒントは、Pythonリストを使用してから、キーで並べ替えること です。Pythonで辞書の値で辞書のリストを並べ替えるにはどうすればよいですか?

于 2012-09-07T21:44:31.410 に答える