javascript - 无法从 Mongoose-Node 检索对象

标签 javascript node.js mongodb express mongoose

我有一个 Mongodb 数据库,其中包含如下所示的简历对象。我正在使用 Node express 服务器。我正在查询 mongo 数据库以获取基于特定技能的对象。例如:如果我查询技能:jquery,则仅返回具有该技能的对象。问题在于从数据库返回对象的 get 函数。

在突出显示的代码中:如果我直接插入对象,例如:

Resume.find({skills.jQuery : 2},function(err, results){...}

然后我得到了预期的结果。

但是,如果我动态插入它(技能集),那么它就不起作用。我检查了 SkillSet 的值,它给出了我所期望的('skills.JQuery')

var skillSet = ("'"+'skills.' + req.params.skill +"'");
console.log('skillSet',skillSet) //'skills.jQuery'
Resume.find({skillSet : 2},function(err, results){

下面是代码片段:

{
    "_id" : ObjectId("56031b4353b32084651173fb"),
    "uuid" : "acd06792-87c3-4b0e-827a-8bd19d7f9c03",
    "creationDate" : ISODate("2015-09-23T21:36:03.728Z"),
    "status" : "3",
    "name" : "resume_dev",
    "__v" : 0,
    "skills" : {
        "node" : 2,
        "react" : 2,
        "React" : 3,
        "JQUERY" : 2,
        "JavaScript" : 15,
        "JQuery" : 5,
        "Backbone" : 3,
        "Node" : 2,
        "Angular" : 4,
        "Javascript" : 2,
        "jQuery" : 17,
        "javascript" : 3
    }
}

router.get('/skills/:skill', function(req, res){
    console.log("req.params.skill",req.params.skill);
    var skillSet = ("'"+'skills.' + req.params.skill +"'");
    console.log('skillSet',skillSet) //skills.react
    Resume.find({skillSet : 2},function(err, results){
        console.log('hi');
        console.log(skillSet)
        console.log(results);
        if (err) {
            res.status(500).json(err);
        }
        else {
            //   console.log("====>",results);
            res.status(200).json(results);
            //  res.render('status',{Resume: JSON.stringify(results)});
        }
    });
});

最佳答案

当我正确理解你的问题时,你可以这样做:

var query = {};
query['skills.' + req.params.skill] = 2;
Resume.find(query,function(err, results){
    // Do something with the callback
};

编辑:

如果你想得到所有大于或等于1的数字,你将需要$gte。这是docs 。这是更新后的查询:

var query = {};
query['skills.' + req.params.skill] = {$gte: 1};
Resume.find(query,function(err, results){
    // Do something with the callback
};

关于javascript - 无法从 Mongoose-Node 检索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774426/

相关文章:

javascript - 为什么在示例中 "for loop"与 "let"配合良好,而不与 "var"配合使用?

javascript - Angular 观察对象不在范围内

javascript - Angular $controller 服务和缩小

git - 如何向我的 package.json 添加非 npm 依赖项?

javascript - 在不使用 `map` 两次的情况下将对象的属性收集到两个数组中的更简洁的方法?

javascript - 错误 : Loading non-context-aware native module in renderer: @serialport\bindings\build\Release\bindings. Node '

javascript - 在 JS 文件中找不到配置目录

MongoDB在文档和子文档上匹配,使用什么作为索引?

node.js - 将流写入 gridfs-stream

javascript - Mongoose 连接然后立即断开连接(Node.js + Express)