首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提取文档时对子文档和子文档子文档进行MongoDB排序

提取文档时对子文档和子文档子文档进行MongoDB排序
EN

Stack Overflow用户
提问于 2021-02-19 17:21:03
回答 1查看 16关注 0票数 0

我需要根据字段从mongodb强制排序子文档中提取数据。我有一个名为entries的集合。每个entry代表一个TvShow,以及它的SeasonsEpisodes。每个episode都有自己的Mediafile。举个例子:

代码语言:javascript
运行
复制
db.entries.findOne({})
{
     Title: "The Big Band Theory"
     Year: 2007,
     Seasons: [{
          Reorder: 2,
          Episodes: [{
               Reorder: 2,
               Mediafiles: [{
                    Reorder: 2
                    filename: "/tvshows/XXXXXX/S2_E2.mkv"
                }, {
                    Reorder: 1
                    filename: "/tvshows/XXXXXX/S2_E2.mkv"
                }
               ]
           }, {
               Reorder: 1,
               Mediafiles: [{
                    Reorder: 2
                    filename: "/tvshows/XXXXXX/S2_E1.mkv"
                }, {
                    Reorder: 1
                    filename: "/tvshows/XXXXXX/S2_E1.mp4"
                }
               ]
           } 
          ]}, {
          Reorder: 1,
          Episodes: [{
               Reorder: 2,
               Mediafiles: [{
                    Reorder: 2
                    filename: "/tvshows/XXXXXX/S1_E2.mkv"
                }, {
                    Reorder: 1
                    filename: "/tvshows/XXXXXX/S1_E2.mkv"
                }
               ]
           }, {
               Reorder: 1,
               Mediafiles: [{
                    Reorder: 2
                    filename: "/tvshows/XXXXXX/S1_E1.mkv"
                }, {
                    Reorder: 1
                    filename: "/tvshows/XXXXXX/S1_E1.mp4"
                }
               ]
           } 
          ]}
     ]
}

因此,我想提取这些数据,这些数据是按每个“季节”“剧集”和“Mediafile”中的Reorder字段排序的。

我尝试使用$sort,但SeasonsEpisodesMediafiles仍未排序。我认为我应该使用$unwind$project,但是我不能递归地对子文档的子文档执行此操作。

有什么可以帮忙的吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-19 17:41:57

排序适用于文档。当您进行排序时,您将以指定的排序顺序重新获得顶级文档,但是排序不会重新排序单个文档中的键,这似乎是您正在尝试做的事情。

如果你只想要嵌入的文档,通过投影将它们提升到顶层,然后对它们应用排序。

如果你真的想重新排序字段,这就更复杂了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66274807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档