对子文档python b排序

2024-09-30 04:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在运行一个瓶子框架和MongoDB。在下面的词典中,我需要按等级对分词进行排序。Mongo不支持对子文档进行排序(除非我使用$push进行排序),我更喜欢对python中的媒体数组和模板按“rank”排序。你知道吗

“条目”:

{ 
"_id" :"...",
"author" : "...",
"body" : "...",
"date" : ...,
"media" : [
            {
                    "caption" : "Drone",
                    "rank" : "2",
                    "media_link" : "34.jpg"
            },
            {
                    "caption" : "Tea drinker",
                    "rank" : "1",
                    "media_link" : "87.jpg"
            },
            {

                    "caption" : "Daniele",
                    "rank" : "3",
                    "media_link" : "54.jpg"
            }
    ],

}

模板代码,我想做一个排序的排名。你知道吗

%if ('media' in entry): 
%numMedia = len(entry['media']) 
%else:
%numMedia = 0               
%end


%for i in range(0, numMedia):
<td valign="top">
<img width='200' src='{{entries['media'][i]['media_link']}}'><br>
Media Caption: {{entries['media'][i]['caption']}}<br>
Rank: {{entries['media'][i]['rank']}}</td>
%end

我试过几种不同的方法,但都没用。。你知道吗


Tags: inbr模板瓶子排序linkmediatd
1条回答
网友
1楼 · 发布于 2024-09-30 04:30:08

你好,欢迎TomSjogren, 基本上,您需要对集合列表进行如下排序:

media = entry['media']
sorted_media = sorted(media, key=lambda m:m['rank'])

我对django不熟悉,但我想应该是这样的:

%for m in sorted_media:
    <td valign="top">
    <img width='200' src='{{m['media_link']}}'><br>
    Media Caption: {{m['caption']}}<br>
    Rank: {{m['rank']}}</td>
%end

相关问题 更多 >

    热门问题