使用nodejs查询MongoDb

时间:2014-08-18 05:42:02

标签: javascript ajax node.js mongodb

我有一个情况。我有一个ajax调用,用于查询值并返回。在我给出的Js文件中

function getLoginData(){
    debugger;
    var getUserName=$("#inputUserName").val();
    $.ajax({
        url:'/users/loginValidation',
        dataType:'json',
        data:{"uName":getUserName},
        type:'post',
        async:false,
        success:function(data){
            debugger;
        }
    })
} 

在我给出的路线中的Users.js文件中

router.post('/loginValidation',function(req,res){
    var db=req.db;
    var getName=req.body.uName;
    db.collection("Users").find({"name":getName},{"type":{$in: [ "admin", "owner" ]}}).toArray(function(err,result){
        res.json(result);
    })

})
  1. 我的要求是我要检查包含名称的用户集合,如" getName"变量
  2. 除此之外,我想检查该名称的类型是否为" admin"或"所有者"。
  3. 如果这两个条件都不满足,则返回错误消息
  4. 我的用户收藏就像这样

    { "_id" : 1, "name" : "Rohith", "type" : "admin" }
    { "_id" : 2, "name" : "Kumar", "type" : "owner" }
    { "_id" : 3, "name" : "Krishna", "type" : "Sales" }
    { "_id" : 4, "name" : "Nikhil", "type" : "Sales" }
    { "_id" : 5, "name" : "Don", "type" : "admin" }
    

    现在我在ajax调用成功时得到一个空值... 感谢

1 个答案:

答案 0 :(得分:1)

使用$and,如下所示:

db.collection("Users")
    .find({"$and": [
        {"name": getName},
        {"type": {"$in": [ "admin", "owner" ]}
    ]})
    .toArray(function(err,result){
        if (!err && !result) err = 'No results';
        if (err) return res.send(500, err);
        res.json(result);
    })