node.js - MongoDB 投影不排除字段
问题描述
技术栈:React、Node 和 MongoDB(本机驱动程序)。
我正在使用简单的 MongoDB findOne 方法通过电子邮件查找用户。在这个 findOne 方法中,我包含了投影字段,它应该从数据库中的 MongoDB 文档中排除或包含某些字段。
响应被发送到使用户退出的回调函数(我将演示)。
我的问题:当我使用这个投影额外参数时,我所做的任何事情都不会影响我从请求中得到的结果。我错过了什么或做错了吗?
代码:
MongoDB方法:
static findUserInDatabase = ( method, searchParam, callback ) => {
const db = getDb();
if ( method === "email" ) {
//This is where I have the issue
db.collection( process.env.USERSCOLLECTION ).findOne( { email: searchParam.trim() }, { password: 0 } ).then( r => callback( r) ).catch( e => callback( e ) );
} else {
db.collection( process.env.USERSCOLLECTION ).findOne( { tokens: searchParam.trim() } ).then( r => callback( r ) ).catch( e => callback( e ) );
}
};
记录用户的节点代码:
User.findUserInDatabase( "email", friendEmail.email, ( friend ) => {
console.log( friend );
//Inside of this console.log I get all of the fields of the user, such as password field.
} );
这是 MongoDB 文档:
“以下操作在 bios 集合中找到一个文档,并仅返回 name、contribs 和 _id 字段:”
db.bios.findOne(
{ //Query },
{ name: 1, contribs: 1 }
)
解决方案
推荐阅读
- python - Python将空格分隔文件转换为带有日期的csv问题?
- google-sheets - 根据字符串从不同的工作表中获取行
- python - 使用 pandas 在 python 中通过 hh:mm:ss 时间数据获取平均组
- delphi - 如何在 DBGRID 中突出显示文本中的一个单词
- javascript - 如何仅在使用 React 将某些内容添加到数组时运行 useEffect?
- java - 持有人等级制度的阶级等级制度
- python - 为没有索引的每一行添加一个值到熊猫的空列?
- go - Go-micro rabbit mq 插件 - 优先发布消息
- php - 错误:您的要求无法解析为一组可安装的软件包。拉拉维尔
- powershell - 用于勾选代理设置的 PowerShell 脚本:“使用自动配置脚本”和“自动检测设置”