我是MongoDB的新手,所以我可能有一些术语错误,但我不认为我见过任何人问过这样的问题:
如果我有一个形状类似以下内容的文档集合:
{
_id: ObjectID('656ce741b78f8f5fea229c4f'),
year: 2,
name: "Student Name",
grades: [
{
date: ISODate('2014-08-16T00:00:00.000Z'),
grade: 'A',
score: 97
},
{
date: ISODate('2014-03-19T00:00:00.000Z'),
grade: 'A',
score: 91
},
{
date: ISODate('2015-08-16T00:00:00.000Z'),
grade: 'B',
score: 82
}
]
}
我怎么才能找到所有的全优学生呢?也就是说,所有的学生使得成绩数组只包含grades.grade = "A"
.我可以提供实际的文档 struct ,但是这个虚构的学生文档集合的逻辑应该是相同的.
我try 过使用$all
,但我认为这需要一个值数组,而不是一个对象array.我也try 了$elemMatch
和$ne: B
和$ne: C
,但这似乎返回至少一个元素是A
的任何内容,而不是要求所有元素都是A
.