到目前为止我得到的查询:
const cities = await City.find({ names : { $in: citiesArray }})
字符串
字段names
是由逗号(e.g "A, B, C, D, E...")
分隔的String
字段citiesArray
是数组(e.g. ["A", "B", "C", "D", "E", ...])
我怎样才能改变这段代码,让我们说,返回所有包含names字段'A'
中第一个元素的文档。当然,如果数组中的任何元素与字符串字段名称中的任何元素匹配,这将是有用的,但现在,匹配第一个元素就足够了。
2条答案
按热度按时间kt06eoxx1#
您可以Map
array
并从其中的每个值生成new Regex
:字符串
或者你可以使用管道分隔的
|
正则表达式模式:型
我在这里创建了一个演示,其中包含更多示例,包括两种方法的结果,以便更好地解释它:Demo Link
另外,这里是文档:MongoDB Regex
iaqfqrcu2#
我能找到的唯一解决办法是:
字符串
如果我必须只匹配第一个数组中的第一个值(来自field cities),它会解决这个问题。但如果稍后我试图扩展以匹配字符串的第一个字段(以逗号分隔)和itens数组中的所有字段,这不是一个好的解决方案。