访问用户记录中的数组

时间:2018-04-11 03:32:59

标签: mongodb express mongoose

我需要一些帮助,我可以很好地创建记录;但我无法访问项目数组中的特定记录。如何访问项目数组中的特定记录。我尝试了很多方法但没有显示任何内容。我使用的是Mongoose,快递,护照和蒙哥。

var userSchema = new mongoose.Schema({
email: { type: String, unique: true, lowercase: true },
password: String,

profile: {
name: { type: String, default: '' },
location: { type: String, default: '' }
},
project:
  [{
    test: String,
    test1: String,
  }],
resetPasswordToken: String,
resetPasswordExpires: Date
});

1 个答案:

答案 0 :(得分:1)

如果要查找整个文档,可以使用mongoose的find方法。 与userSchema.findById({_ id:req.params.id})一样,MongoDB中存储的文档始终会创建唯一ID,以便您可以访问这些特定文档。

如果您只想从该对象中找到特定数据,那么您可以使用它。

userSchema.findOne({_ id:id},{project:{$ elemMatch:{test:abc}}})

此处仅显示具有test = abc的项目,以便您可以更新项目。 在第一个对象中,它匹配对象并仅选择项目数组中具有test = abc的那些对象。

如果您需要全部使用find,findOne将只为您提供匹配的第一个对象。

click here to see the documentation of elemMatch