执行简单的$match聚合会导致Expected "[" or AggregationStage but "{" found.错误。
Expected "[" or AggregationStage but "{" found.
{ $text: { $search: "search query" } }
5jvtdoz21#
我也遇到过同样的错误,但在我的例子中,我使用$addFields与$switch语句,这里$regexMatch中断了我在指南针中的管道:
$addFields
$switch
$regexMatch
{ attribute: { $switch: { branches: [ { case: { $regexMatch: { input: "$attribute", regex: /expression/ } }, then: "..." } ], default: "$attribute" } } }
但是,当我在CLI中执行它时,它运行得非常好
2jcobegt2#
尝试使用此查询进行搜索,
db.collectionname.aggregate([ { $match:{ "Field_name": { $regex:'Search_value', $options: "si" } }}]);
jljoyd4f3#
为了使用$text,你需要创建一个文本索引,假设你有一个名为countries的集合和一个名为capital的文本字段,你可以通过命令db.countries.createIndex({capital:"text"})创建一个文本索引。现在,您可以按以下方式聚合和使用$text。注意我们将操作括起来的方括号。
countries
capital
db.countries.createIndex({capital:"text"})
db.countries.aggregate([ { $match:{ $text: { $search: "Mumbai" } } } ])
eiee3dmh4#
您需要直接在文本框中提供查询对象。示例
/** * query - The query in MQL. */ { count_field: {"$gt": 1} }
4条答案
按热度按时间5jvtdoz21#
我也遇到过同样的错误,但在我的例子中,我使用
$addFields
与$switch
语句,这里$regexMatch
中断了我在指南针中的管道:但是,当我在CLI中执行它时,它运行得非常好
2jcobegt2#
尝试使用此查询进行搜索,
jljoyd4f3#
为了使用$text,你需要创建一个文本索引,假设你有一个名为
countries
的集合和一个名为capital
的文本字段,你可以通过命令db.countries.createIndex({capital:"text"})
创建一个文本索引。现在,您可以按以下方式聚合和使用$text。注意我们将操作括起来的方括号。
eiee3dmh4#
您需要直接在文本框中提供查询对象。
示例