gpt4 book ai didi

MongoDB聚合 - 如果数组中的值匹配

转载 作者:IT老高 更新时间:2023-10-28 13:06:14 26 4
gpt4 key购买 nike

我有一个正在执行聚合的集合,我基本上已经把它归结为

{array:[1,2,3], value: 1},
{array:[1,2,3], value: 4}

如何执行聚合匹配来检查值是否在数组中?我尝试使用 {$match: {"array: {$in: ["$value"]}}} 但它没有找到任何东西。

我希望输出(如果使用上面的例子)是:

{array:[1,2,3], value:1}

最佳答案

3.6版本可以在正则查询中使用聚合表达式。

db.collection_name.find({"$expr": {"$in": ["$value", "$array"]}})

使用聚合:

您可以在当前 3.6 版本中使用 $match + $expr

db.collection_name.aggregate({"$match": {"$expr": {"$in": ["$value", "$array"]}}})

您可以在3.4版本中尝试$redact + $in表达式。

db.collection_name.aggregate({
"$redact": {
"$cond": [
{
"$in": [
"$value",
"$array"
]
},
"$$KEEP",
"$$PRUNE"
]
}
})

关于MongoDB聚合 - 如果数组中的值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30537317/

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