我的网站上有一个过滤器部分页面。我正在使用Meteor,我想要显示至少有一首歌符合价格标准的所有专辑/ EPS /单曲。
样本专辑/ EP /单个文档如下所示:
{
"_id" : "gj92wpjw5WNfkgDJd",
"title" : "Gem",
"description" : "Lorem ipsum dolor",
"isExplicit" : false,
"releaseDate" : ISODate("2018-08-14T13:27:08.483Z"),
"ownedBy" : {
"user" : "AAPrkjkPtn8nbmYbM",
"accountDataId" : "njJyhGfLGb83oztmT",
"name" : "Zia Cecille",
"path" : "/artist/zia-cecille"
},
"mood" : {
"energetic" : 50,
"happy" : 50,
"electronic" : 50,
"vocal" : 50
},
"songs" : [
"E6FwMr9FcwEYM79wt",
"KXQmvr7QMGX9q6u7C",
"oasNrffNbiZXQ9WEJ"
],
"isPublished" : true,
"isDisplayedOnSite" : true,
"createdAt" : ISODate("2018-08-14T13:27:08.483Z")
}
songs属性是属于该Album / EP / Single的所有歌曲子文档的数组。每首歌曲都是一个单独的文档,是另一首歌曲集合的一部分。如何查询至少有一首按价格过滤的歌曲的专辑/ EP /单曲?
回答我自己的问题,我在Songs集合中查询了与价格过滤器值匹配的所有歌曲,并从该查询中返回了一个数组。然后我使用$ in运算符在Albums / EP / Singles中查询包含前一组查询歌曲中任何值的文档。