gpt4 book ai didi

mongodb - 是否可以在 mongodb 聚合函数中使用 "$where"

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

我需要使用聚合函数在 MongoDB 中获取字符串值的长度。

它适用于

db.collection_name.find({"$where":"this.app_name.length===12"})

但是当植入到

db.collection_name.aggregate({$match: 
{"$where":"this.app_name.length===12"}
},
{
$group :
{
_id : 1,
app_downloads : {$sum: "$app_downloads"}
}
}

);

我得到了这个结果:

failed: exception: $where is not allowed inside of a $match aggregation expression

问题是:是否可以在聚合函数中使用$where?或者有什么方法可以在聚合函数中获取字符串值的长度?

提前致谢埃里克

最佳答案

MongoDB 不支持聚合管道中的$where,希望这永远不会发生,因为 JavaScript 会减慢速度。尽管如此,您仍然有多种选择:

1) 维护额外字段(例如 app_name_len),而不是存储 app_name 长度并在需要时查询它。

2) 您可以尝试极慢 MapReduce 框架,您可以在其中使用 JavaScript 编写聚合。

关于mongodb - 是否可以在 mongodb 聚合函数中使用 "$where",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279948/

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