在复合键上查找没有给出任何结果mongo db MEAN stack nodejs

时间:2017-10-30 06:56:46

标签: node.js mongodb rest mean-stack

我已经在堆栈溢出中读到了一些有关此问题的解决方案,但没有一个适合我的情况。

我的mongo db collection _id是一个复合键,如下所示,

Mongo db Application Collection

{
"_id" : {
    "appId" : 1,
    "name" : "my app"
},
"dataLoaded" : true,
"__v" : 0
}

我的代码(给出空结果)

app.get('/api/application',function(req,res){
    Application.findOne({"_id" : req.query._id},function(err,application){
        if(err){
            res.status(500).send(err);
        }else{
            if(application){
                console.log("entered")
                res.status(200).send(application);
            }else{
                res.status(404).send(err);
            }

        }
    })
});

我的代码(作为结果提供文件)

app.get('/api/application',function(req,res){
    Application.findOne({"_id" : {"appId" : 1,"name" : "my app"}},function(err,application){
        if(err){
            res.status(500).send(err);
        }else{
            if(application){
                console.log("entered")
                res.status(200).send(application);
            }else{
                res.status(404).send(err);
            }

        }
    })
});

我的console.log(req.query._id)结果{"appId" : 1,"name" : "my app"}

时的情况

我无法理解我犯了什么错误。当_id不是复合键时,一切正常。

提前致谢!!

1 个答案:

答案 0 :(得分:0)

正如sidgate在评论中建议的那样,它是一个字符串,无法解析为对象。将复合键的值作为单独的参数传递是唯一的方法。