我有架構
person = {
skill = [{
type: String
}]
name = { type : String}
}
我有技能陣
skill = ['python', 'css']
我想要所有匹配技能陣列中至少一項技能的人。
$all 和 $in 僅檢索與技能陣列中所有技能匹配的人,但我想要至少與技能陣列中的技能匹配的技能人。
uj5u.com熱心網友回復:
您可以使用$setIntersection.
$setIntersection- 將輸入技能陣列與skill欄位相交并回傳一個具有共同(相交)值的陣列。$ne- 使用 (1) 中的結果過濾檔案不是空陣列。
db.collection.find({
$expr: {
$ne: [
{
$setIntersection: [
[
"python",
"css"
],
"$skill"
]
},
[]
]
}
})
示例 Mongo Playground
uj5u.com熱心網友回復:
您可以將"$in"其用于您的目的。也許您之前嘗試過時遇到了其他問題。
db.collection.find({
"skill": {
"$in": [ "python", "css" ]
}
})
在mongoplayground.net上試試。
只是為了好玩,這是另一個使用mgodatagen配置生成集合的mongoplayground.net示例。查詢是一樣的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/433618.html
