Mongoose 从数组元素中选择特定字段

r4i*_*id4 6 mongoose mongodb node.js

假设我有这个架构

{
jedi: [{
       name:String
       lightsaber_color:String
      ]}
}
Run Code Online (Sandbox Code Playgroud)

我想返回所有并且只返回他们的名字。我试过

Jedi.find({})
    .select('jedi.name')
    .exec(function (err, jedi) {
      if (err) {
        console.log("nothing found")
      }
}
Run Code Online (Sandbox Code Playgroud)

它不返回任何内容,而此代码返回所有内容。

Jedi.find({})
        .select('jedi')
        .exec(function (err, jedi) {
          if (err) {
            console.log("nothing found")
          }
    }
Run Code Online (Sandbox Code Playgroud)

我看到绝地是一个数组,所以我认为.select('jedi.name')由于这个原因可能不起作用。
这样做的正确语法是什么?

Son*_*dey 1

你可以尝试用这个

Jedi.find({}, {'jedi.name':1}, function (err, jedi) {
      if (err) {
        console.log("nothing found")
      }
      else{
        console.log(jedi);
      }
}
Run Code Online (Sandbox Code Playgroud)