[MONGODB] 요소를 통과하는 부분 (...)를 사용할 수 없습니다
MONGODB요소를 통과하는 부분 (...)를 사용할 수 없습니다
mongod 3.6을 실행하고이 예제를 사용하는 시도.
다음은 샘플 데이터는 다음과 같습니다
> db.students2.find().pretty()
{
"_id" : 1,
"grades" : [
{
"grade" : 80,
"mean" : 75,
"std" : 8
},
{
"grade" : 85,
"mean" : 90,
"std" : 6
},
{
"grade" : 85,
"mean" : 85,
"std" : 8
}
]
}
{
"_id" : 2,
"grades" : [
{
"grade" : 90,
"mean" : 75,
"std" : 8
},
{
"grade" : 87,
"mean" : 90,
"std" : 5
},
{
"grade" : 85,
"mean" : 85,
"std" : 6
}
]
}
나는 예에 규정 된 모든 위치 연산자를 사용하려고 시도하고있다 :
> db.students2.update({}, { $inc: { "grades.$[].std" : -2 } }, {multi: true})
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "cannot use the part (grades of grades.$[].std) to traverse the element ({grades: [ { grade: 80.0, mean: 75.0, std: 8.0 }, { grade: 85.0, mean: 90.0, std: 6.0 }, { grade: 85.0, mean: 85.0, std: 8.0 } ]})"
}
})
왜이 오류 메시지가 발생? 내가 제대로 설명서를 따르지 않는 건가요?
해결법
-
==============================
1.MongoDB를위한 더 높은 버전으로 낮은 버전에서 전환 할 때 당신은 당신의 MongoDB를위한 세트 setFeatureCompatibilityVersion에 가지고있는
MongoDB를위한 더 높은 버전으로 낮은 버전에서 전환 할 때 당신은 당신의 MongoDB를위한 세트 setFeatureCompatibilityVersion에 가지고있는
당신은 단순히 몽고 쉘에서이 명령을 실행하여 설정할 수 있습니다
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
from https://stackoverflow.com/questions/51777183/cannot-use-the-part-to-traverse-the-element by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 / NoSQL에가 : 문서 변경 내역을 유지 (0) | 2019.12.15 |
---|---|
[MONGODB] C #을 중첩 된 개체의 수를 계산 (0) | 2019.12.15 |
[MONGODB] 어떻게하여 MongoDB에서 배열에서 항목의 인스턴스를 당겨? (0) | 2019.12.15 |
[MONGODB] 어떻게 포함 된 배열의 갱신 후 새 값을 다시 얻으려면? (0) | 2019.12.15 |
[MONGODB] 몽고에서 $ 정규식 및 $ 또는 연산자를 결합 (0) | 2019.12.15 |