如何在mongodb本机驱动程序中的find()上进行字段选择?

 史彩哲 发布于 2023-02-05 10:40

我正在使用node.js的mongodb本机驱动程序,无法进行字段选择.我想要做的是限制字段名称.我不希望输出中的'last'.

我这样做:

db.collection("test").find({},[{'name':true,'last':false}]).toArray(function(err, results) {
    console.dir(results);
});

但日志打印:

[ { _id: 524b53588aa4f388de1c2ddb },
  { _id: 524b53548aa4f388de1c2dda } ]

所以name输出中没有.


更新:我尝试过一个对象而不是数组 - 没有用.原因是混合包含和排除.你不能混合它.当我只有"name":true它工作.

3 个回答
  • 如果您使用的是最新的mongodb 3.0 nodejs驱动程序,请尝试以下代码:

    db.collection('test').find({}).project({name: 1, last: 1}).toArray();
    

    2023-02-05 10:42 回答
  • 在v3.0中执行此操作的推荐方法是使用options对象中的投影字段:

    db.collection('test').find({}, {projection: {name: 1}}).toArray()
    

    如接受的答案中所述,您仍然无法混合包含和排除.

    请参阅:http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#find

    2023-02-05 10:42 回答
  • 字段选择参数to find是一个对象,而不是一个数组.并且您不能混合使用字段包含和排除(除了_id),因此它应该是:

    db.collection("test").find({}, {'name': true}).toArray(function(err, results) {
        console.dir(results);
    });
    

    2023-02-05 10:42 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有