我有一个 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。我无法弄清楚为什么会发生这种情况。
最佳答案
从驱动程序 3.0 版开始,find
函数的第二个参数表示选项
,而不是投影。请尝试以下操作:
db.collection("gholson").find({}, { "projection": { "_id": 1 } })
或
db.collection("gholson").find({}).project({ "_id": 1 })
关于node.js - 使用 mongo 和 mongoClient 从同一查询获取不同的投影结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49577585/