如何在Meteor中查询具有符合条件的子文档的文档?

时间:2018-08-20 08:36:39

标签: javascript database mongodb meteor

我的网站上有一个过滤器板块页面。我正在使用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的所有Songs子文档的数组。每首歌曲是一个单独的文档,是另一个Songs集合的一部分。如何查询至少有一首按价格过滤的歌曲的专辑/ EP /单曲?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,我在“歌曲”集合中查询了所有与价格过滤器值匹配的歌曲,并从该查询返回了一个数组。然后,我使用$ in运算符在Albums / EP / Singles中查询包含先前查询的歌曲数组中包含任何值的任何文档。