使用mongo和mongoClient从同一查询中获取不同的投影结果

时间:2018-03-30 16:05:56

标签: node.js mongodb express mongodb-query

我有一个mongodb数据库,我正在尝试投影一些数据。当我在mongo命令行中使用以下查询 -

db.gholson.find({}, { "_id": 1 }).skip(85).limit(2).pretty();

我得到以下输出: -

{
    "_id": ObjectId("5abbde863f10ebda405b91f0"),
    "_id": ObjectId("5abbde863f10ebda405b91f1")
}

这是所需的输出,但是当我设置一个快速服务器并对MongoClient使用以下查询时,我得到的是所有字段,而不仅仅是ids

db.collection('gholson').find( {}, { "_id": 1 }).skip(85).limit(2).toArray(( err, result ) => {
        if( err ) throw err;
        console.log( result );
        callback();
    });

上述查询返回所有键值对而不是id。我无法弄清楚,为什么会这样。

1 个答案:

答案 0 :(得分:0)

从驱动程序3.0版开始,find函数的第二个参数代表options,而不是投影。请尝试以下方法:

db.collection("gholson").find({}, { "projection": { "_id": 1 } })

db.collection("gholson").find({}).project({ "_id": 1 })
相关问题