下面是我的快速端点,它返回一个空数组
router.get('/myUnits/:landlord_id', wagner.invoke((Apartment) => {
return (req, res) => {
Apartment.find({ postedBy: req.params.landlord_id }, (err, apt) => {
if (err) {
return res.status(status.INTERNAL_SERVER_ERROR)
.json({ error: err.toString() })
}
if (!apt) {
return res.status(status.NOT_FOUND)
.json({ error: 'Not found' })
}
return res.json(apt)
})
}
}))
我更改了Apartment.find({ price: 200 })
,并使用price: 200
查询所有数据,但查询postedBy
根本不起作用。
当我去我的mongo shell并进行查询时
db.apartments.find({ postedBy: 'the id of the account here' })
返回适当的数据。
答案 0 :(得分:0)
我明白了。它一直在我的架构中。
let apartmentSchema = {
name: { type: String, required: true },
price: { type: Number, required: true },
promotion: { type: String, required: true },
postedOn: { type: Date, required: true },
postedBy: {
type: mongoose.Schema.Types.ObjectId, // this was the culprit
required: true
}
}
我刚刚将类型更改为String。我使用了之前api中的ObjectId,我很久以前就已经更新了。谢谢你的耐心!