我正在尝试使用Mongoose的findOne()属性在MongoDB集合中搜索文档。模式如下:
用户地址的模式
const AddressSchema = new Schema({
houseNumber: {
type: String,
required: true },
street: {
type: String,
required: true },
barangay: {
type: String,
required: true },
city: {
type: String,
required: true },
province: {
type: String,
required: true },
zipCode: {
type: Number,
required: true },
})
用户集合
const UserSchema = new Schema({
patientID: {
type: String,
required: true,
unique: true
},
username: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
},
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
sex: {
type: String,
required: true
},
birthdate: {
type: Date,
required: true
},
bloodType: {
type: String,
required: true
},
address: {
type: AddressSchema,
required: true
}
})
和处理查询的代码:
static async fetchUserFiles(req, res, next) {
console.log(req.params.id);
const userData = await User.findOne({ patientID: req.params.id});
}
以下是URL,如果这会有帮助的话:
router.route("/user/files/:id")
.get(checkIfAuthenticated, FileHandler.fetchUserFiles)
问题是,当我尝试按用户名搜索用户时,就像await User.findOne({username: 'johnsmith'})
一样,它工作得很好。但是,当执行上述代码时,该函数返回null
。我已经检查了我是否给出了正确的查询类型,但仍然给出了null
。经过观察,我还尝试搜索其他文档字段,如firstName
和lastName
,工作正常。只有当我尝试按patientID
搜索时,它才抛出NULL。
如有线索,敬请垂青!
1条答案
按热度按时间tjvv9vkg1#
您可以检查PatientID是否属于OBJECTID类型,以及您尝试搜索的值是否也属于OBJECTID类型。有时演员阵容会引起一些问题