mongoDB查询返回null,但使用.toArray返回数据

时间:2014-03-12 13:40:41

标签: node.js mongodb

我在mongoDB中有这个查询

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 = undefined

但是当我这样做时:

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

如何通过第一个查询获取数据?我想要像

这样的东西

1 个答案:

答案 0 :(得分:4)

存在差异。如果您只想要一个结果,就像在_id搜索一样,那就使用.findOne()

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

否则您将返回Cursor()个对象。至少在原生驱动程序中以及在ODM中以某种形式存在。