2016-08-14 25 views
0

我试图访问一个字段从MongoDB的collection.find方法 回来了,我不能这样做,并没有什么出在执行console.log如何访问由mongodb collection.find方法返回的Expressj中的特定字段?

router.get('/buildings', function(req, res, next) { 
var db = req.db; 
var collection = db.get('buildings'); 

collection.find({buildingNO:"1"},{},function(e,docs){ 
    var x=docs[0].price; 
    console.log(x); 
    }); 
}); 

注:我使用的是中等和尚洁具不是本地的MongoDB

感谢

+0

如果你控制台'docs'你会得到什么 – adeneo

+0

你有一个文档[0]的错字,你应该使用docs [0] –

回答

1

章埃克在回调的错误论点和你的回报的说法是:

x=docs[0]... 

而不是:

x=doc[0] 

我很惊讶你没有得到一个未定义的变量错误。

0

您可以使用功能projection中的NodeJS。

投影是您传递的第二个对象为空{}因此会投影所有属性。

例如:

如果你喜欢投射对象:

{ 
_id:false// or 0 
} 

会忽略_id属性。

在这里,我们将通过price

collection.find({buildingNO:"1"},{price:1},function(e,docs){ 
    var x=docs[0].price; 
    console.log(x); 
    }); 

你有一个错字 DOC [0]应该文档

http://docs.mongodb.org/manual/reference/method/db.collection.find/

相关问题