[MONGODB] 달러 것은 두 번째 인수로 배열을 필요로 발견 실종
MONGODB달러 것은 두 번째 인수로 배열을 필요로 발견 실종
아무도 내가 잘못하고있는 중이 야 무엇을 말해 주실 래요?
DB 문서 구조 :
{
"_id" : "module_settings",
"moduleChildren" : [
{
"_id" : "module_settings_general",
"name" : "General",
},
{
"_id" : "module_settings_users",
"name" : "Users",
},
{
"_id" : "module_settings_emails",
"name" : "Emails",
}
],
“permissions” : [
"module_settings_general",
"module_settings_emails"
]
}
파이프 라인 단계 :
{ $project: {
filteredChildren: {
$filter: {
input: "$moduleChildren",
as: "moduleChild",
cond: { $in : ["$$moduleChild._id", "$permissions"] }
}
},
}}
나는 IDS는 "권한"배열에있는 경우에만 모듈을 보여 필터 "moduleChildren"배열이 필요합니다. 시도 "$$ ROOT.permissions"와 "$$ CURRENT.permissions"하지만 그들 중 누구도 작동하지 않습니다를 IVE. 난 항상에서 $가 인수로 배열 누락되는 오류가 발생합니다. 콘드 : :이 같은 배열을 하드 코딩 할 때 작동 {$에서 : [ "$$ moduleChild._id", [ "module_settings_emails"] "module_settings_general"]}는 문제가 보인다 있도록 배열의 전달입니다. 어떤 조언을 주셔서 감사합니다!
해결법
-
==============================
1.첫 번째 옵션 -> 사용 집계
첫 번째 옵션 -> 사용 집계
귀하의 컬렉션에 문서의 일부 또는 권한 필드를 포함하거나 유형하지 않을 수 있기 때문에하지이 오류가 발생하는 이유 배열과 동일.
이 배열이 아닌 여부를 당신이 $ COND 집계 $의 addFields으로 배열로 추가 할 수있는 것보다 문서에 존재하는 경우는 필드의 $ 유형을 찾을 수 있습니다
db.collection.aggregate([ { "$addFields": { "permissions": { "$cond": { "if": { "$ne": [ { "$type": "$permissions" }, "array" ] }, "then": [], "else": "$permissions" } } }}, { "$project": { "filteredChildren": { "$filter": { "input": "$moduleChildren", "as": "moduleChild", "cond": { "$in": [ "$$moduleChild._id", "$permissions" ] } } } }} ])
두 번째 옵션 ->
어떤 사용하는 GUI 및 실행에 몽고의 쉘 또는 robomongo로 이동 이 명령
db.collection.update( { "permissions": { "$ne": { "$type": "array" } } }, { "$set": { "permissions": [] } }, { "multi": true } )
from https://stackoverflow.com/questions/51642472/in-requires-an-array-as-a-second-argument-found-missing by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 MongoDB의 모든 컬렉션을 내보내려면? (0) | 2019.12.10 |
---|---|
[MONGODB] 현재 문서 필드 값 내 근처 지리 $ (0) | 2019.12.10 |
[MONGODB] 치명적인 오류 - '몽고'클래스를 찾을 수 없습니다 (0) | 2019.12.10 |
[MONGODB] 어떻게 효율적으로 MongoDB에 관련된 문제를 해결하기 위해? [닫은] (0) | 2019.12.10 |
[MONGODB] 전화하여 MongoDB의 집계 내부 기능? (0) | 2019.12.10 |