Javascript 用猫鼬查找包含A和X的名称?

Javascript 用猫鼬查找包含A和X的名称?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我使用的是Mongoose,我想用find()方法处理两个不同的字符串。 我的数据库中有“Mr.Robot”,但如果用户只键入“Mr.Robot”,由于点的原因,它不会返回任何内容。 因此,我考虑将“Mr Robot”拆分为一个由“Mr”和“Robot”组成的数组,我想返回名称中包含“Mr”和“Robot”的文档。 我试过类似的方法,但没有成功: Model.find({name: /Mr/, name: /Robot/}); 提前谢谢让我们假设你好和再见是两个词。因此,正则表达式应该是这样的

我使用的是Mongoose,我想用find()方法处理两个不同的字符串。
我的数据库中有“Mr.Robot”,但如果用户只键入“Mr.Robot”,由于点的原因,它不会返回任何内容。
因此,我考虑将“Mr Robot”拆分为一个由“Mr”和“Robot”组成的数组,我想返回名称中包含“Mr”和“Robot”的文档。
我试过类似的方法,但没有成功:

Model.find({name: /Mr/, name: /Robot/});

提前谢谢

让我们假设
你好
再见
是两个词。因此,正则表达式应该是这样的:
/hi.*?再见。*/

如果我的正则表达式错误,请纠正我。

所以,它们应该是这样的。选项
i
表示不区分大小写

Model.find({ "name" : { $regex: /hi.*?bye.*/, $options: 'i' } });

希望有帮助。

如果您已经将
名称
拆分为一个数组,您可以使用该数组来匹配该数组中的所有项目,这是必需的,因为如果您仅通过
名称
进行检查,例如
机器人

这可能会同时返回
Mr.Robot
Mrs.Robot
。(可能存在多个称呼不同的名字)

因此,您必须检查所有元素并确保它们匹配

Model.find( { name: { $all:  [ "Mr", "Robot" ]  } } ).
如果您不想遵循
name
spliting,Regex可能是一种方法