![](/img/trans.png)
[英]Find a Mongodb document if it contains an element in the array in mongoose
[英]MongoDB - Find document in which array contains any items in query array
我有架构
person = {
skill = [{
type: String
}]
name = { type : String}
}
我有skill
阵
skill = ['python', 'css']
我想要所有匹配技能阵列中至少一项技能的人。
$all
和$in
只检索匹配skill
数组中所有技能的人,但我想要匹配skill
数组中至少一项技能的人。
您可以使用$setIntersection
。
$setIntersection
- 将输入技能数组与skill
字段相交,并返回一个具有共同(相交)值的数组。$ne
- 使用 (1) 的结果过滤文档不是空数组。db.collection.find({
$expr: {
$ne: [
{
$setIntersection: [
[
"python",
"css"
],
"$skill"
]
},
[]
]
}
})
您可以使用"$in"
来达到您的目的。 也许您之前尝试过时遇到了其他问题。
db.collection.find({
"skill": {
"$in": [ "python", "css" ]
}
})
在mongoplayground.net上试试。
只是为了好玩,这是另一个使用mgodatagen配置生成集合的mongoplayground.net示例。 查询是一样的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.