gpt4 book ai didi

javascript - 具有特定首字母缩写的两个单词的出现 MongoDB

转载 作者:行者123 更新时间:2023-12-01 01:28:46 25 4
gpt4 key购买 nike

我收集了一系列由标题、作者、评分、 Actor 和其他字段组成的电影。

我正在尝试查找至少有一名 Actor 的名字和姓氏以 C 开头的电影,并显示标题和 Actor 。Actors 是一个包含 Actor 的数组(同一字段中的名字和姓氏)例如:{Matt Damon、Bradd Pitt} 等...

我尝试过这个:

db.movieDetails.find( 
{ actors: { $regex: "^C.C" , $options: 'i' } },
{_id:0, title:1, actors:1}
);

还有这样的聚合:

db.movieDetails.aggregate(
{$unwind: '$actors'},
{$match: { actors: { $regex: "^C.C", $options: 'i' } } },
{$group: {_id: { actors: '$actors' , title: "$title" }}}
);

但我只是想通过查看何时有一个以 C 开头的 Actor 和另一个出现的情况来避免这个问题,而这个解决方案仅部分有效,因为它返回给我的电影中有两个 Actor 的名字仅以 C 开头.

我想知道是否有一种方法可以使用正则表达式来检查整个字符串中以某些内容开头的所有单词。

最佳答案

您提供的正则表达式不正确。 ^C.C

的解释
  • ^ - 匹配行的开头
  • C - 匹配字符 C
  • . - 匹配任何单个字符
  • C - 匹配字符 C

基本上,它将匹配第一个和第三个字母为 C 的任何 Actor 姓名。

相反,请尝试以下正则表达式:^C.* C。说明:

  • ^ - 匹配行的开头
  • C - 匹配字符 C
  • .* - 匹配零次到无限次之间的任何字符
  • (space)C - 匹配一个空格后跟一个 C(假设姓氏与名字之间用空格分隔)

蒙戈代码:

db.movieDetails.find({
actors: {
$regex: "^C.* C",
$options: "i"
}
});

关于javascript - 具有特定首字母缩写的两个单词的出现 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53501846/

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