gpt4 book ai didi

mongodb - 获取嵌套对象匹配计数条件的文档

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

我是一个 mongo 菜鸟,正在使用一个 mongo 集合,其中的记录如下所示:

{
"cats" [
{
"name": "fluffy",
"color": "red",
},
{
"name": "snowball",
"color": "white",
},
]
{

我想执行一个查询,获取所有包含超过 1 只白猫的记录。 MapReduce 看起来很有前途,但似乎有点矫枉过正。感谢您的帮助。

最佳答案

您可以使用 aggregation framework去做这个。你don't need使用 $where运营商。

db.collection.aggregate([
{ "$match": { "cats.color": "white" }},
{ "$project": {
"nwhite": { "$map": {
"input": "$cats",
"as": "c",
"in": { "$cond": [
{ "$eq": [ "$$c.color", "white" ] },
1,
0
]}
}},
"cats": 1
}},
{ "$unwind": "$nwhite" },
{ "$group": {
"_id": "$_id",
"cats": { "$first": "$cats" },
"nwhite": { "$sum": "$nwhite" }
}},
{ "$match": { "nwhite": { "$gte" :2 } } }
])

关于mongodb - 获取嵌套对象匹配计数条件的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32484001/

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