"features" : {
"en" : [
{
"translatable" : true,
"capacity " : [
"128GB",
"256GB"
]
},
{
"translatable" : true,
"material " : [
"Glass",
"Aluminium"
]
}
]
}
我发现了容量':' 128GB'当我使用此查询时
db.getCollection('products').find({
'features.en' : {
$elemMatch : {
'capacity' : {
$in : ['128GB']
}
}
}
})
但不取。 如果我查询' translatable':true
db.getCollection('products').find({
'features.en' : {
$elemMatch : {
'translatable' : true
}
}
})
答案 0 :(得分:2)
输入文档中有一个棘手的TYPO - 所以请检查容量最后是否有空格
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()
答案 1 :(得分:0)
你试过这个吗?
db.products.find({' features.en':{$ elemMatch:{' capacity':{$ elemMatch:{$ in:[' 128GB&# 39;]}}}}})