我正在尝试返回与查询字段匹配的子文档。我只想返回与用户匹配的 PIN,该 PIN 保存在帐户集合中。这就是我到目前为止所得到的。
router.post('/SelectUser', async(req, res) =>{
try{
const acc = await Account.findOne({"Email": req.body.Email});
if(!acc) throw Error('Email not found');
var user = await Account.findOne({"Users.Username":req.body.User.Username},{Users:{PIN:1}});
}
这会输出与帐户关联的所有 PIN,这不是我想要的。以下是我正在使用的架构和模型:
Account:
const User = require('../Models/UserData');
const AccountSchema = new Schema({
// Email linked to this account
Email:{
type:String,
unique:true,
required:true,
index:true
},
// Password for the account
Password:{
type : String,
required : true
},
// Users on this account
Users:{
type:[User],
required:true
}
});
module.exports = mongoose.model('Account', AccountSchema);
User:
const UserSchema = new Schema({
// Name of the user
Username:{
type:String,
required:true,
unique:true
},
// PIN for each user
PIN:{
type:Number,
require:true
}
});
module.exports = UserSchema;