gpt4 book ai didi

mongodb - 如何在 $match 阶段比较数组长度?

转载 作者:行者123 更新时间:2023-12-04 12:46:10 26 4
gpt4 key购买 nike

funding_rounds下面是一个数组,我正在尝试执行以下查询并得到错误 $size needs a number ,正确的使用方法是什么$size$gte在聚合?

db.companies.aggregate([
{
$match: {
$and: [
{"founded_year": 2004},
{"funding_rounds": {$size: {$gte: 5}}}
]
}
}
])

最佳答案

$size 运算符应在投影内使用,因此您需要在匹配之前转换文档:

db.companies.aggregate([
{
"$project": {
"_id": 1,
"founded_year": 1,
"funding_rounds": 1,
"funding_rounds_size": { "$size": "$funding_rounds" }
}
},
{
"$match": {
"$and": [
{"founded_year": 2004},
{"funding_rounds_size": { "$gte": 5 }}
]
}
}
])

还有更短的方法来比较数组长度:您可以检查是否存在第五个元素:
db.companies.find(
{
"founded_year": 2004,
"funding_rounds.4": { $exists: true }
}
)

关于mongodb - 如何在 $match 阶段比较数组长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524788/

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