mongoose.findOne return 空
mongoose.findOne return null
我已经在 express 中创建了将患者数据输入 mongodb 并从数据库中获取数据的路线。预期结果是在 return 中获得患者资料。 get 路由中存在一些错误,因此我无法看到 patient_profile 响应。请帮忙。
// @ route GET api/patient/:patientId
// @ desc Get patient by patientId
// @ access Private
router.get('/:patientId', auth, async (req, res) => {
try {
const patient_profile = await Patient.findOne({
patient: req.params.patientId
}).populate('patient',['name','phonenumber']);
//console.log(patient);
console.log(patient_profile);
if (!patient_profile) return res.status(400).json({ msg: 'Patient not found' });
res.json(patient_profile);
} catch (err) {
console.error(err.message);
if (err.kind == 'ObjectId') {
return res.status(400).json({ msg: 'Profile not found' });
}
res.status(500).send('Server Error');
}
});
module.exports=router;
const mongoose= require('mongoose');
autoIncrement = require('mongoose-auto-increment');
const config =require('config');
const db=config.get('mongoURI');
var connection = mongoose.createConnection(db);
autoIncrement.initialize(connection);
const PatientSchema = new mongoose.Schema({
name:{
type:String,
required: true
},
phonenumber:{
type:Number,
required:true
},
date: {
type: Date,
default: Date.now
},
slider_1:{
type:Number,
required: true
},
slider_2:{
type:Number,
required:true
},
slider_3:{
type:Number,
required:true
}
});
PatientSchema.plugin(autoIncrement.plugin, {
model:'Patient',
field:'patientId',
startAt:1,
incrementBy:1
});
module.exports=Patient=mongoose.model('patient',PatientSchema,'patient');
您正在查询基于 patient
而不是 patientId
,这是您指定自动递增的字段。
将您的查询修改为:
const patient_profile = await Patient.findOne({
patientId: req.params.patientId
}).populate('patient',['name','phonenumber']);
希望这能解决您的问题。
我已经在 express 中创建了将患者数据输入 mongodb 并从数据库中获取数据的路线。预期结果是在 return 中获得患者资料。 get 路由中存在一些错误,因此我无法看到 patient_profile 响应。请帮忙。
// @ route GET api/patient/:patientId
// @ desc Get patient by patientId
// @ access Private
router.get('/:patientId', auth, async (req, res) => {
try {
const patient_profile = await Patient.findOne({
patient: req.params.patientId
}).populate('patient',['name','phonenumber']);
//console.log(patient);
console.log(patient_profile);
if (!patient_profile) return res.status(400).json({ msg: 'Patient not found' });
res.json(patient_profile);
} catch (err) {
console.error(err.message);
if (err.kind == 'ObjectId') {
return res.status(400).json({ msg: 'Profile not found' });
}
res.status(500).send('Server Error');
}
});
module.exports=router;
const mongoose= require('mongoose');
autoIncrement = require('mongoose-auto-increment');
const config =require('config');
const db=config.get('mongoURI');
var connection = mongoose.createConnection(db);
autoIncrement.initialize(connection);
const PatientSchema = new mongoose.Schema({
name:{
type:String,
required: true
},
phonenumber:{
type:Number,
required:true
},
date: {
type: Date,
default: Date.now
},
slider_1:{
type:Number,
required: true
},
slider_2:{
type:Number,
required:true
},
slider_3:{
type:Number,
required:true
}
});
PatientSchema.plugin(autoIncrement.plugin, {
model:'Patient',
field:'patientId',
startAt:1,
incrementBy:1
});
module.exports=Patient=mongoose.model('patient',PatientSchema,'patient');
您正在查询基于 patient
而不是 patientId
,这是您指定自动递增的字段。
将您的查询修改为:
const patient_profile = await Patient.findOne({
patientId: req.params.patientId
}).populate('patient',['name','phonenumber']);
希望这能解决您的问题。