Mongo 클라이언트가 밑줄이 앞에 붙은 컬렉션에 액세스할 수 없음
Mongo에서 밑줄이 있는 컬렉션의 이름을 지정했지만 셸에서 액세스할 수 없습니다.
meteor:PRIMARY> show collections
_assignments
chatmessages
(... other stuff)
첫 번째 컬렉션에서 함수를 실행하려고 하면 다음 오류가 발생합니다.
meteor:PRIMARY> db._assignments.find()
Thu Jun 19 10:53:28.450 TypeError: Cannot call method 'find' of undefined
그러나 다른 컬렉션은 정상적으로 작동합니다.
meteor:PRIMARY> db.chatmessages.find()
{ "room" : "j5oau9DJ6GNpT9nR8", "userId" : "at9Kt8NNL4aeof6LE", "text" : "@nomad943 can you take a look at event #1?", "timestamp" : 1391806611977, "_id" : "26GbXa6c4B65FYRxC" }
{ "room" : "T7JfjBhri48bNHAfQ", "userId" : "B82LxmPBZWDnN4N2p", "text" : "Thinking #60 should be deleted, it's a duplicate of #36 and the region is wrong for the province", "timestamp" : ISODate("2014-06-18T18:57:56.480Z"), "_id" : "29pKqPhi4hgxCb2Ky" }
이게 무슨 일입니까?
셸이 기본 도우미 구문으로 이 문제를 해결할 수 없다는 것 외에는 문제가 없습니다.셸에서 다음과 같은 이름의 컬렉션에 계속 액세스할 수 있습니다.
db.createCollection("_assignments")
{ "ok" : 1 }
db.getCollection("_assignments").find()
db.getCollection("_assignments").insert({ "a": 1 })
WriteResult({ "nInserted" : 1 })
db.getCollection("_assignments").find({ "a": 1 })
{ "_id" : ObjectId("53a36a4047234c4e9bb4feac"), "a" : 1 }
이것은 알려진 버그입니다.컬렉션 앞에 밑줄을 붙이지 마십시오.
https://jira.mongodb.org/browse/SERVER-445
집합 이름이 밑줄로 시작하는 경우에는 큰따옴표로 묶어야 합니다.(최소한 MongoDB 버전 4.x 이하에서는) 밑줄(_첫 번째 문자로)이 올바르게 해석되지 않으므로 따옴표(즉, 일반 문자열로 지정)로 묶어야 합니다. 예를 들어 다음은 작동하지 않습니다.
db._someCollection.find()
하지만 다음은 잘 작동합니다.
db.getCollection("_someCollection").find();
HTH
컬렉션 이름에 밑줄이 포함되어 있고 새 문서를 삽입하려면 다음과 같이 컬렉션을 변수에 할당하고 삽입에 사용해야 합니다.
var assignments = db.getCollection("_assignments")
assignments.insertOne(
{
room : "123",
userId : "1",
text : "text"
}
)
서류 작성 후에
언급URL : https://stackoverflow.com/questions/24309685/mongo-client-cant-access-collections-prefixed-with-an-underscore
'programing' 카테고리의 다른 글
사용되지 않는 타이핑 패키지를 수동으로 업데이트하는 방법 (0) | 2023.06.28 |
---|---|
SQL 쿼리의 SELECT 문에서 WITH TIES 키워드는 무엇을 사용합니까? (0) | 2023.06.28 |
각 지점 및 해당 지점의 마지막 개정 날짜를 Git로 나열 (0) | 2023.06.28 |
'{}' 유형을 '{title: string; }' 유형에 할당할 수 없습니다. (0) | 2023.06.28 |
Git 하위 모듈 이름 바꾸기 (0) | 2023.06.28 |