node.js - 使用 mongo 和 mongoClient 从同一查询获取不同的投影结果

标签 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。我无法弄清楚为什么会发生这种情况。

最佳答案

从驱动程序 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/

相关文章:

node.js - 由于 broccoli-sass 和 node-sass,无法将 ember cli 应用程序推送到 heroku

javascript - mongodb 不保存来自node.js 的条目

python - 查询具有多个条件的mongodb数组字段

javascript - 使用测试框架时如何启动 Node 服务器?

node.js - 使用 Mocha 和 Chai 测试 Express 和 Passport OAuth2

php - nodejs TCP/IP 中的\r\n\r\n 是什么字符

java - 引用类 Morphia 上的索引违规

javascript - 无法传递 mongoose 数据来查看 Jade

node.js - 错误 : "Could not connect to any servers in your MongoDB Atlas cluster"

javascript - 使用nodejs服务器读取并打印文件内容?