2012-07-28 110 views
1

我使用下面的猫鼬语法制作蒙戈查询....猫鼬查询返回“undefined'`

   // Log the search 
       console.log("Searching for: " + lName); 

       query.where('lname', lName) 
       query.exec(function(err,results){ 
         //Check for an err 
         if(err){ 
           // Send the err 
           res.send(err); 

           // Log the err 
           console.log(err); 
         } else { 
           // Send the query results 
           res.send(results); 

           // Log the results 
           console.log(results); 
         } 
       }); 

该查询返回这个....

URL: /api/search/customers/?lname=Last+Name // My variable 
Query contents = Last Name // My variable 
ReferenceError: lname is not defined 
    at /home/collin/Documents/code/webdev/loyalty-app/api.js:311:12 
    at callbacks (/home/collin/node_modules/express/lib/router/index.js:272:11) 
    at param (/home/collin/node_modules/express/lib/router/index.js:246:11) 
    at pass (/home/collin/node_modules/express/lib/router/index.js:253:5) 
    at Router._dispatch (/home/collin/node_modules/express/lib/router/index.js:280:4) 
    at Object.handle (/home/collin/node_modules/express/lib/router/index.js:45:10) 
    at next (/home/collin/node_modules/express/node_modules/connect/lib/http.js:204:15) 
    at Object.methodOverride [as handle] (/home/collin/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:35:5) 
    at next (/home/collin/node_modules/express/node_modules/connect/lib/http.js:204:15) 
    at Object.bodyParser [as handle] (/home/collin/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:88:61) 

我正在运行此查询了。如果,否则,如果,else语句和查询工作完美的,当我运行它这个样子,并且只用名字......

   // Log the search  
       console.log("Searching for: " + fName + "," + lName); 

       query.where('fname', fName) 
       query.where('lname', lName) 
       query.exec(function(err, results){ 
         // Check for an error 
         if(err){ 
           //Send the err 
           res.send(err); 

           // Log the error 
           console.log(err); 
         } else{ 
           // Send the results of the query 
           res.send(results); 

           // Log the results 
           console.log(results); 
         } 
       }) 

这里是什么样的DB文档看起来像一个样......

{ fname: 'First Name', 
    lname: 'Last Name'} 
+0

你能澄清你的问题吗?我无法弄清楚你在问什么。当你说:'查询返回这个....',是在客户端?或者是服务器端的这些错误? – JohnnyHK 2012-07-28 14:32:22

+0

错误在服务器端。它发生在我为'lname'进行数据库查询时发生的错误是它的未定义。但是,当我查询数据库'fname'和'lname'它工作正常,以及查询'fname'。 – 2012-07-28 16:26:00

+0

错误在服务器端。它发生在web上我正在为'lname'进行数据库查询,错误在于它未定义。但是,当我查询数据库'fname'和'lname'它工作正常,以及查询'fname'。 – 2012-07-28 16:26:08

回答

0

你必须定义模式第一。

Documentation

然后设置

var mongoose = require('mongoose') 
, query = mongoose.model('ex', exSchema); 

你也需要做链调用

尝试

query 
.where('fname', fName) 
.where('lname', lName) 
.exec(function(err, results) { 
    // do some with results 
}); 
+0

谢谢,但我已经有了一个架构,并且在查询'fname'和'lname'时它工作正常。但问题是当我只想查询'lname'时。当我用'fname'进行查询时,它工作得很好,但不能与'lname' – 2012-07-28 21:37:11