【问题标题】:Getting different projection results from same query using mongo and mongoClient使用 mongo 和 mongoClient 从同一查询中获取不同的投影结果
【发布时间】:2018-03-30 16:05:55
【问题描述】:

我有一个 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。我无法弄清楚,为什么会这样。

【问题讨论】:

    标签: node.js mongodb express mongodb-query


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2017-07-19
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多