2014-03-12 72 views
2

我有这个疑问在MongoDB中MongoDB的查询返回NULL,但.toArray返回数据

var query = { "_id": new ObjectID(id)}; 
var items = {items:1}; 

warehouses.find(query, items,function (error, docs) { 
    if (error) { 
     error(error); 
     return; 
    } 


    success(docs); 
}); 

我想_id获取某个文件的项目。这回我docs.items =未定义

但是当我做:

warehouses.find(query, items).toArray(function (error, docs) { 
      if (error) { 
       error(error); 
       return; 
      } 


      success(docs); 
    }); 

返回我的数据:

0: Object 
_id: ObjectID 
items: Array[3] 
0: Object 
1: Object 
2: Object 
length: 3 

我怎样才能获得与第一查询的数据?我想要类似

回答

4

还有一个区别。如果你只希望一个结果,如由_id搜索,然后使用.findOne()

warehouses.findOne(query, items, function (error, doc) { 

否则,你返回Cursor()对象。至少在原生驱动程序中以及在ODM中以某种形式或其他形式。

+0

好吧,这是rigth – colymore