gpt4 book ai didi

mongodb - 如何在 MongoDB 中编写适用于查找和聚合函数的 fieldValue.contains ("someString") 查询

转载 作者:可可西里 更新时间:2023-11-01 09:57:08 25 4
gpt4 key购买 nike

我需要在 MongoDB 查询中实现 fieldValue.contains("someString") 搜索?

我找到的解决方案是

db.main.find(  { $where: "this.content.indexOf('someString') != -1" } );

它可以很好地用于查找功能。

但是当我在聚合函数中做同样的事情时

db.foo.aggregate(
{
$match:
{ $where: "this.content.indexOf('someString') != -1" }
},
{
$project :
{
_id : 1,
words : 1
}
},
{
$unwind : "$words"
},
{
$group : {
_id : { tags : "$words" },
count : { $sum : 1 }
}
},
{
$sort: {count:-1}
},
{
$limit : 5
}
);

我得到了这个结果:

{
"errmsg" : "exception: $where is not allowed inside of a $match aggregation expression",
"code" : 16395,
"ok" : 0
}

问题:如何在 MongoDB 中编写适用于查找和聚合函数的 fieldValue.contains("someString") 查询。

最佳答案

您可以使用 regular expression为此:

$match: { content: /someString/ }

对于 find 情况,您也应该使用正则表达式而不是 $where,因为它更有效。

db.main.find( { content: /someString/ } );

关于mongodb - 如何在 MongoDB 中编写适用于查找和聚合函数的 fieldValue.contains ("someString") 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12865935/

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