Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何通过mongoose虚拟字段查询MongoDB文档?_Node.js_Mongodb_Mongoose_Virtual - Fatal编程技术网

Node.js 如何通过mongoose虚拟字段查询MongoDB文档?

Node.js 如何通过mongoose虚拟字段查询MongoDB文档?,node.js,mongodb,mongoose,virtual,Node.js,Mongodb,Mongoose,Virtual,通过使用mongoose的“findOne”/“find”功能,我如何找到一个特定的文档,在该文档中,结果由虚拟字段过滤,而虚拟字段在数据库中并不实际出现 我将尝试进一步解释: 在我的“用户”模型中,我有一个名为“电子邮件”的字段。我想为“email”创建一个别名,作为我的nodejs应用程序中其他功能的“userkey”(主要是登录验证等) 要创建别名,我执行了以下操作: 现在,在创建别名后,我希望通过以下方式过滤搜索结果: restApi.post('/login', function (r

通过使用mongoose的“findOne”/“find”功能,我如何找到一个特定的文档,在该文档中,结果由虚拟字段过滤,而虚拟字段在数据库中并不实际出现

我将尝试进一步解释:

在我的“用户”模型中,我有一个名为“电子邮件”的字段。我想为“email”创建一个别名,作为我的nodejs应用程序中其他功能的“userkey”(主要是登录验证等)

要创建别名,我执行了以下操作:

现在,在创建别名后,我希望通过以下方式过滤搜索结果:

restApi.post('/login', function (req, res)  // (using expressjs)
{
    User.findOne({'userkey': req.body.userkey}).exec(..);
}
我怎样才能高效地完成这项工作,而不需要创建更多的方法\field等来节省时间和内存

别名非常重要,因为在应用程序的未来,我将添加更多的登录方式,并且我希望能够在与“userkey”关联的字段之间快速切换。这个别名省去了更改整个应用程序的麻烦(这是一个庞大的编程原则),并且可以帮助我添加更多将来需要的逻辑。

你不能


存储在mongodb中的文档中不存在虚拟对象,因此没有任何可查询的内容。

哦,是否有一个已知的解决方案,我可以实现?或者至少用其他方法为字段创建别名?好的,谢谢。我将标记这个答案,因为我只能假设除此之外没有其他方法。
restApi.post('/login', function (req, res)  // (using expressjs)
{
    User.findOne({'userkey': req.body.userkey}).exec(..);
}