Mongoose for var in 子文档中的循环

Mongoose for var in loop in subdocuments

我用 mongoose Schema 创建了这个模式:

socialAccount =  new Schema({
    socialNetwork : { type : String , required : true},
    userid : { type : Number,  required :  true },
    username : String
},{_id : false});
person = new Schema({
    id : { type : Number,  unique : true, required : true , dropDups :  true },
    firstname : String,
    lastname : String,
    socialAccounts : [socialAccount],
    updated : { type : Date, default : Date.now },
    enable : { type : Boolean , default : true },       
});

当我使用 findOne 方法获取数据时,结果如下所示(在 console.log() 中):

{ 
  id: 1,
  firstname: 'example name',
  lastname: 'example last',
  enable: true,
  updated: Thu Sep 24 2015 09:40:17 GMT+0330 (IRST),
  socialAccounts: 
   [ { socialNetwork: 'instagram',
       userid: 1234567,
       username: 'example' } ] }

所以,当我想用​​ for var in 循环结构迭代子文档 socialAccounts 并用 console.log() 查看数据时,它 returns 一些其他对象和功能 & 只有第一个是子文档对象。
如何使用此 for 循环迭代方法仅获取 socialAccounts 子文档的第一个元素。

谢谢

使用索引 for 循环,而不是 forin:

for (let i = 0; i < socialAccounts.length; i++) {
    var currentAccount = socialAccounts[i];
}

forin 循环将枚举您注意到的其他对象属性,不应将其用于数组。请参阅 this 个问题和答案。

尝试

.findOne(...() => {})

对我有用