我需要一些帮助,我可以很好地创建记录;但我无法访问项目数组中的特定记录。如何访问项目数组中的特定记录。我尝试了很多方法但没有显示任何内容。我使用的是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
});
答案 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将只为您提供匹配的第一个对象。