使用带冒号的URI的Mongoose查询

时间:2018-02-24 05:26:27

标签: mongodb mongoose

我试图根据用户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工作?或者我是否必须使用不同的信息进行查询?

1 个答案:

答案 0 :(得分:0)

在该示例中,您似乎指定对象的userId应匹配" id"但是不要指定你想要的钥匙" uri"匹配(大概是" songUri")。

你有:

{
    userId: id, 
    uri
} 

也许它应该更像是:

{
    userId: id, 
    songUri: uri
} 

最后,如果这不起作用,可以尝试传入Uri的字符串(用引号括起来),然后使用JSON.parse()

在后端解析它