Mongo DB - 无法检索存储在类型:Array

时间:2018-01-05 10:16:22

标签: javascript node.js mongodb mongoose

我对MongoDB相当新,并开始了解人际关系。我遇到了一个问题,我试图将一组对象存储到我的一个集合模型中。基本上这个阵列存储得很好,如果我在罗盘中看到所有正确的信息就在那里。问题在于检索数组,这里看起来像我的数组中的对象被扁平化为字符串,因为它只是检索这样的事情:

注意:我使用node Express作为我的BE框架

members: [ [Object] ] } ]

以下是我的模型:

const teamSchema = new Schema({
    name:{
        type:String,
        trim:true,
        required:'Please enter a team name'
    },
    owner:{
        type:mongoose.Schema.ObjectId,
        ref:'User'
  },
    members:{
        type:Array,
  }  
});

以下是我在Node中使用模型的方法:

const team = new Team({
        name:req.body.teamName,
  owner:req.user._id,
  members:[{
    id:req.user._id,
    privilege:'admin'
  }]
})

  try {
    await team.save();
  } catch(error) {
    console.log(error)
  }

以下是MongoDB Compass中存储的内容 enter image description here

但是当检索它并试图像这样修改它时:

const team = await Team.find({'_id':teamId});

发现它没有问题,但成员数组只显示我之前提到的内容:

members: [ [Object] ] } ]
谁能告诉我哪里可能出错了?认为这可能与我拯救它而不是检索它的方式有关

1 个答案:

答案 0 :(得分:0)

尝试使用projection的{​​{1}}字段返回搜索元素中的数组:

find