gpt4 book ai didi

mongodb - 在对象中查找数组元素

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

"features" : {
"en" : [
{
"translatable" : true,
"capacity " : [
"128GB",
"256GB"
]
},
{
"translatable" : true,
"material " : [
"Glass",
"Aluminium"
]
}
]
}

我在使用此查询时发现 'capacity': '128GB'

db.getCollection('products').find({
'features.en' : {
$elemMatch : {
'capacity' : {
$in : ['128GB']
}
}
}
})

但不是抓取。如果我查询 'translatable':true

db.getCollection('products').find({
'features.en' : {
$elemMatch : {
'translatable' : true
}
}
})

最佳答案

您的输入文档中有一个棘手的 TYPO - 所以请检查 capacity 末尾是否有空格

db.prod.aggregate([{
$match : {
"features.en.capacity " : "128GB"
}
},
]).pretty()

要仅获取满足您条件的数组元素,您可以使用此聚合查询:

db.prod.aggregate([{
$unwind : "$features.en"
}, {
$match : {
"features.en.translatable" : true
}
}, {
$match : {
"features.en.capacity " : "128GB"
}
},
]).pretty()

关于mongodb - 在对象中查找数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162088/

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