投影不适用于查找查询

时间:2018-08-07 17:40:23

标签: node.js mongodb

您好,我想按查询排除某些字段。我正在使用nodejs

public async getDoc() {
        return new Promise((resolve, reject) => {
            this.database.collection('users').find({email: "value3"}, {password: 0}).toArray((err, result) => {
                if(err) {
                    reject(err)
                }
                resolve(result);
            });
        })
    }

但是在结果集中,我一直在获取密码字段。

2 个答案:

答案 0 :(得分:2)

投影无法与新的nodejs mongodb驱动程序配合使用...相反,您将不得不在此处使用.project()游标方法

this.database.collection('users')
  .find({ "email": "value3" })
  .project({ "password": 0 })
  .toArray();

答案 1 :(得分:1)

使用 fields 对象作为find方法中的第二个参数,该对象中要获取独占密码的所有字段。

这样做:

find({email: "value3"}, {fields: {all_other_fields...: 1}})

您也可以尝试 {fields:{password:0}} ,但是我自己没有尝试过,这就是为什么我不确定它是否可以工作的原因。