我正在使用猫鼬,我有user
集合的以下数据:
[{
"_id": "1",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
},
{
"value": "A70",
"text": "art"
}
]
},
{
"_id": "2",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
}
]
},
{
"_id": "3",
"notes": [
{
"value": "A80",
"text": "art"
}
]
}]
,我将以下数组作为参数:[ "A90", "A80" ]
因此我想查询使用此数组的查询,以仅返回具有注释(值)表中所有数组项的记录。
因此,对于上面的示例,它将返回:
[{
"_id": "1",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
},
{
"value": "A70",
"text": "art"
}
]
},
{
"_id": "2",
"notes": [
{
"value": "A90",
"text": "math"
},
{
"value": "A80",
"text": "english"
}
]
}]
我尝试了以下查找查询:
{ "notes": { $elemMatch: { value: { $in: valuesArray } } }}
但是即使valuesArray中仅存在一个元素,它也会返回一条记录。
答案 0 :(得分:0)
事实证明很容易:
find({ "notes.value": { $all: arrayValues } })