我有一个叫做“餐”的集合,里面有这样一个文档:
# Meals collection
{
name: "burger",
tag: ObjectId(63d6bb22972f5f2fa97f1506),
}
现在我进入了React应用程序,我想向后端API发送一个查询,
所以我提出了一个请求,看起来 * 基本上 * 如下:
const tagId = "63d6bb22972f5f2fa97f1506"
const queryString = `http://localhost:3001/v1/meals?tag=${tagId}`
sendQuery(queryString)
这个查询是对服务器进行的,如下所示,遵循RESTful模式:
http://localhost:3001/v1/meals?tag=63d6bb22972f5f2fa97f1506
在后端,我传递搜索参数如下:
// # nodejs server-side
// # using expressjs
// # and using mongoose
api.get('/meals', async (req, res, next)=> {
const res = await MealModel.find(req.query) // req.query = { tag: "63d6bb22972f5f2fa97f1506" }
res.status(200).json({
status: 'success'
data: res
})
})
但是,查询什么也不返回,[]
,
因为tag
类型实际上是一个对象ID,而不是字符串,req.query.tag
是字符串,而不是对象ID。
如何通过JSON将对象ID从前端发送到后端?
听起来很疯狂,对吧?有什么解决办法?
1条答案
按热度按时间hgtggwj01#
如果你的Meals集合中只有一个文档,那么使用findOne,你的查询会执行得更快。2请告诉我它是否有效。3希望它能有所帮助。