我对mongodb中的聚合概念比较新。在我的文档中,有一个数组。我尝试了$ match,$ unwind,$ group来拉取一个在数组中有两个给定值的文档。我想写的没有帮助..这是样本
文件:
{Name:"Kal", Class: "2", Subject: ["Physics", "English", "Maths"]},
{Name:"Matt", Class: "1", Subject: ["Physics", "English"]},
{Name:"Kim", Class: "1", Subject: ["Physics", "Spanish"]},
{Name:"Bud", Class: "2", Subject: ["Physics", "German"]},
{Name:"Roger", Class: "2", Subject: ["Physics", "French"]},
{Name:"Kate", Class: "1", Subject: ["English"]}
从这些文件中,我需要提取一个包含" Class:1"和'主题["物理","英语"]'
所以,如果我正确地编写了我的查询(或聚合),我应该从上面提取第二个文档。
这就是我所拥有的
db.Student.aggregate([{"$match": {"Class": "1",}},{"$unwind": "$Subject"},{"$match": {"Subject": "Physics"}},{"$match": {"Subject": "English"}} ]).pretty()
好吧,上面的聚合并没有让我得到任何回报,所以我尝试使用$并将两者结合起来' Physics'和'英语',但我得到了' $并且不是舞台操作员'错误。
我也尝试过以下聚合,但我什么都没回来。
db.Student.aggregate([{"$match": {"Class": "1",}},{"$match": {"Subject": ["Physics", "English"]}} ]).pretty()
我该怎么做?
答案 0 :(得分:1)