我试图根据用户ID查询我的MongoDB,并发现歌曲的URI,如下所示:spotify:local:A%24AP+Rocky::Goldie:194
。但是,它似乎不起作用。我的查询看起来像这样。
app.patch('/api/songs/:spotifyId/:songUri', (req, res) => {
var id = req.params.spotifyId;
var uri = req.params.songUri;
Song.findOne({
userId: id,
uri
}).then((song) => {
song.update({$inc: {count:1}}, (e)=>{console.log(e)})
res.send(song);
}).catch((e) => {
res.status(400).send();
})
})
我尝试仅使用有效的userID进行查询,并且仅使用不起作用的URI。我还使用没有冒号或百分号的URI创建了一些假数据。所以,我认为我的查询因冒号或其他原因而无效。
有没有人确切知道查询无法正常工作的原因,以及是否有办法让我的查询使用URI工作?或者我是否必须使用不同的信息进行查询?
答案 0 :(得分:0)
在该示例中,您似乎指定对象的userId应匹配" id"但是不要指定你想要的钥匙" uri"匹配(大概是" songUri")。
你有:
{
userId: id,
uri
}
也许它应该更像是:
{
userId: id,
songUri: uri
}
最后,如果这不起作用,可以尝试传入Uri的字符串(用引号括起来),然后使用JSON.parse()
在后端解析它