programing

MongoDB Shell - 이름에 마침표가 있는 액세스 컬렉션?

linuxpc 2023. 7. 5. 20:30
반응형

MongoDB Shell - 이름에 마침표가 있는 액세스 컬렉션?

MongoDB 데이터베이스 중 하나에서 다음과 같은 이름의 컬렉션을 찾았습니다.my.collection.

이름에 일리가 있음에도 불구하고 MongoDB 쉘에서 이 컬렉션에 액세스할 수 있는 방법이 있습니까?

> db.my.collection.findOne();
null

저는 그것이 정확하지 않다고 꽤 확신합니다.

대신 사용해 보십시오.

db["my.collection"].findOne();

하이픈과 동일한 문제가 발생하거나 [a-zA-Z_$][0-9a-zA-Z_$]에서 일치하지 않는 다른 이름이 발생한 경우

이 제한은 Javascript 개체 속성에 대해 유효한 이름으로 지정되어 있기 때문입니다.

컬렉션 이름이 "my.collection"인 경우

db.my .collection.하나 찾기(); // 확인
무효의

컬렉션 이름이 "my.1.collection"인 경우

db.my .1.collection.하나 찾기(); // 정상이 아님
구문 오류: 누락; 전 문

수정:

db["my.1.collection"].FindOne(); // 이제 괜찮아요
무효의

또 다른 완벽한 방법은 다음과 같습니다.

db.getCollection("_SCHEMA").find()

이름에 밑줄이 있는 경우에도 @Laura 답변에 오류가 발생합니다.

> db["_SCHEMA"].find()
2016-07-18T17:44:16.948+0200 E QUERY    [thread1] TypeError: db._SCHEMA is undefined :
@(shell):1:1

코드가 정확합니다.null을 반환하면 컬렉션이 비어 있음을 의미합니다.

언급URL : https://stackoverflow.com/questions/4680873/mongodb-shell-access-collection-with-period-in-name

반응형