MongoDB内部数组的count()

Mar*_*rta 5 mongodb mongodb-query

我有以下MongoDB集合db.students:

/* 0 */
{
    "id" : "0000",
    "name" : "John"
    "subjects" : [
      {
        "professor" : "Smith",
        "day" : "Monday"  
      },
      {
        "professor" : "Smith",
        "day" : "Tuesday"  
      }
  ]
}

/* 1 */
{
    "id" : "0001",
    "name" : "Mike"
    "subjects" : [
      {
        "professor" : "Smith",
        "day" : "Monday"  
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想找到给定学生的科目数量。我有一个查询:

 db.students.find({'id':'0000'})
Run Code Online (Sandbox Code Playgroud)

这将返回学生文件。如何找到“对象”的数量?在一个简单的查询中是否可行?

Mus*_*enç 3

如果查询仅返回一个元素:

db.students.find({'id':'0000'})[0].subjects.length;
Run Code Online (Sandbox Code Playgroud)

对于光标中的多个元素:

db.students.find({'id':'0000'}).forEach(function(doc) {
    print(doc.subjects.length);
})
Run Code Online (Sandbox Code Playgroud)

不要忘记在查询中或检查之前检查主题是否存在.length