Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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
Javascript 出现两个带有特定首字母MongoDB的单词_Javascript_Regex_String_Mongodb_Nosql - Fatal编程技术网

Javascript 出现两个带有特定首字母MongoDB的单词

Javascript 出现两个带有特定首字母MongoDB的单词,javascript,regex,string,mongodb,nosql,Javascript,Regex,String,Mongodb,Nosql,我有一系列电影,包括片名、编剧、收视率、演员和其他领域 我试图找到至少有一个演员的电影,名字和姓氏以C开头,并显示标题和演员。 Actors是一个包含Actors的数组(同一字段中的名字和姓氏),例如:{Matt Damon,Bradd Pitt}等 我试过这个: db.movieDetails.find( { actors: { $regex: "^C.C" , $options: 'i' } }, {_id:0, title:1, actors:1} ); 还有这样的聚合:

我有一系列电影,包括片名、编剧、收视率、演员和其他领域

我试图找到至少有一个演员的电影,名字和姓氏以C开头,并显示标题和演员。 Actors是一个包含Actors的数组(同一字段中的名字和姓氏),例如:{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开头的情况来避免这个问题,这个解决方案只起到了部分作用,因为它会返回两个演员的电影,他们的名字以C开头


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

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

  • ^-匹配行首
  • C-匹配字符C
  • -匹配任何单个字符
  • C-匹配字符C
基本上,它将匹配第一个和第三个字母为C的任何演员姓名

请改为使用以下正则表达式:
^C.*C
。说明:

  • ^-匹配行首
  • C-匹配字符C
  • *-匹配零次和无限次之间的任何字符
  • (空格)C-匹配后跟C的空格(假设姓氏与名字之间用空格分隔)
Mongo代码:

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

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

  • ^-匹配行首
  • C-匹配字符C
  • -匹配任何单个字符
  • C-匹配字符C
基本上,它将匹配第一个和第三个字母为C的任何演员姓名

请改为使用以下正则表达式:
^C.*C
。说明:

  • ^-匹配行首
  • C-匹配字符C
  • *-匹配零次和无限次之间的任何字符
  • (空格)C-匹配后跟C的空格(假设姓氏与名字之间用空格分隔)
Mongo代码:

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

谢谢,你的解决方案非常有效,现在我完全理解正则表达式。谢谢,你的解决方案非常有效,现在我完全理解正则表达式。