gpt4 book ai didi

node.js - Mongoose find() 具有多个条件

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:14 24 4
gpt4 key购买 nike

我试图在我的数据库(MongoDB)中查找满足所有定义条件(有些可能未定义)的所有数据记录。我使用 NodeJs 作为服务器,并使用 mongoose 连接到数据库。

例如,我的数据库包含以下记录:

数据库名称:电影

{title: 'A' , main_actor, 'A.A.'},
{title: 'B' , main_actor, 'B.B.'},
{title: 'C' , main_actor, 'A.A.'}.

如果我的请求包含以下内容:

  • 标题 = 'A' 和
  • main_actor 未定义

我执行以下查询:

Movie.find(title: title, main_actor: main_actor, .....) 

响应是一个空数组,而我想得到

{title: 'A' , main_actor, 'A.A.'}

仅按“电影”、仅“主要 Actor ”、“电影”和“主要 Actor ”查找所有记录的最佳方法是什么?换句话说,如果搜索条件未定义,是否有一种方法可以忽略一个或多个字段(我想避免这样做:

if (criteria1 & !criteria2) { ...find(criteria1....)} 
if (!criteria1 & criteria2) { ...find(criteria2....)}
if (criteria1 & criteria2) { ...find(criteria1,criteria2....)}

最佳答案

您可以使用$or运算符,如果您的值未定义,请求将搜索未定义该字段的文档。

尝试一下:

Movie.find({
$or: [
{title: title},
{main_actor: main_actor}
// ...
]
});

关于node.js - Mongoose find() 具有多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49447419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com