但是我无法在ID之后找到任何物品,
里面的Calendar.model是doc:
/* 1 */
{
"_id" : ObjectId("5a3425b58399c6c26cf1c848"),
"doctorID" : ObjectId("5a31392cc99fe923c0810096"),
"doctor" : "Bartłomiej Flis",
"calendar" : []
}
在nodeJS API中,我试图使用函数找到doc:
router.get(' / list-of-dates',(req,res)=> {
Calendar.find({ doctorID : req.query.doctorID})
.then((Calendar)=>{
console.log(Calendar)
res.send(Calendar)
})
.catch((err)=>{
console.log(err)
})
});
req.query.doctorID的值是字符串 - > 5a31392cc99fe923c0810096
任何人都可以告诉我为什么这个功能找不到任何项目?我认为这是错误,在数据库变量中,doctorID是ObjectId,而在API中,req.query.doctorID是一个字符串,如何在API中对其进行改进。
答案 0 :(得分:0)
首先,在文件开头导入以下内容:
{ doctorID: ObjectId( req.query.doctorID ) }
然后,将您的搜索查询更改为(即将其包装到 ObjectId()函数中)
ObjectId
有什么区别? MongoDB以String
类型存储密钥,而您尝试查找类型为dirname
的内容。你是对的。这就是你没有得到任何东西的原因。
如果有帮助,请告诉我。