콘솔에서 스니펫 사용
경고
이는 실험적인 기능입니다. MongoDB는 스니펫을 지원하지 않습니다. 이 기능은 사전 통지 없이 변경되거나 제거될 수 있습니다.
버그는 예상되지 않지만, 버그가 발생하면 Github 리포지토리 에서 문제를 제기하세요. 이 프로젝트의 경우.
이 페이지에서는 mongosh
콘솔에서 스니펫을 사용하는 방법에 대한 개요를 설명합니다.
스니펫 패키지 설치
사용하기 전에 스니펫 패키지를 설치해야 합니다. 일단 스니펫 패키지가 설치되면 mongosh
가 시작될 때마다 로드됩니다.
설치하려는 스니펫의 이름을 알고 있는 경우 다음을 입력합니다.
snippet install <name>
그렇지 않으면 리포지토리를 검색하여 사용 가능한 스니펫 목록을 가져옵니다.
snippet search
스니펫이 설치되면 y
를 입력하여 로드합니다.
Running install... Installed new snippets analyze-schema. Do you want to load them now? [Y/n]: y Finished installing snippets: analyze-schema
참고
스니펫을 처음 사용하는 경우 다음과 같은 경고가 표시될 수 있습니다.
This operation requires downloading a recent release of npm. Do you want to proceed? [Y/n]:
스니펫을 사용하려면 npm을 설치해야 합니다.
스니펫 실행
새 스니펫을 실행하기 전에 snippet help <SNIPPET NAME>
을 실행하여 스니펫의 기능에 대해 자세히 알아보세요.
예를 들어, snippet help analyze-schema
는 analyze-schema
에 컬렉션 이름을 전달하여 사용할 수 있음을 나타냅니다.
testDB> snippet help analyze-schema # analyze-schema Analyze the schema of a collection or a cursor. ```js > schema(db.coll); ┌─────────┬───────┬───────────┬────────────┐ │ (index) │ 0 │ 1 │ 2 │ ├─────────┼───────┼───────────┼────────────┤ │ 0 │ '_id' │ '100.0 %' │ 'ObjectID' │ │ 1 │ 'a ' │ '50.0 %' │ 'Number' │ │ 2 │ 'a ' │ '50.0 %' │ 'String' │ └─────────┴───────┴───────────┴────────────┘
스니펫을 호출하는 방법을 알게 되면 다음 예시에서와 같이 스니펫을 사용할 수 있습니다.
reservations
컬렉션을 살펴봅시다.
db.reservations.insertMany( [ {"_id": 1001, "roomNum": 1, "reserved": true }, {"_id": 1002, "roomNum": 2, "reserved": true }, {"_id": 1003, "roomNum": 3, "reserved": "false" }, {"_id": 1004, "roomNum": 4, "reserved": true }, ] )
컬렉션을 분석하려면 analyze-schema
스니펫 미설치 시 설치하고 컬렉션 이름을 전달하여 실행합니다.
snippet install analyze-schema schema(db.reservations)
"_id": 3
이 포함된 문서가 문자열로 잘못 입력되었습니다. 분석 결과 reserved
필드에 예상 부울 외에도 문자열 요소가 있는 것으로 나타났습니다.
┌─────────┬────────────┬───────────┬───────────┐ │ (index) │ 0 │ 1 │ 2 │ ├─────────┼────────────┼───────────┼───────────┤ │ 0 │ '_id ' │ '100.0 %' │ 'Number' │ │ 1 │ 'reserved' │ '75.0 %' │ 'Boolean' │ │ 2 │ 'reserved' │ '25.0 %' │ 'String' │ │ 3 │ 'roomNum ' │ '100.0 %' │ 'Number' │ └─────────┴────────────┴───────────┴───────────┘
스니펫 제거
snippet uninstall
명령을 사용하여 스니펫을 제거합니다. 이름을 잘 모르는 경우 snippet ls
명령은 설치된 모든 스니펫을 나열합니다.
이 코드는 analyze-schema
스니펫을 제거합니다.
snippet uninstall analyze-schema
사용 가능한 스니펫 패키지 찾기
snippet ls
명령은 로컬에 설치된 스니펫 목록을 일부 버전 및 소스 정보와 함께 반환합니다.
snippets@ /root/.mongodb/mongosh/snippets ├── mongosh:PRIVATE..DecryptCards@1.0.5 ├── mongosh:analyze-schema@1.0.5 └── npm@7.23.0
레지스트리에서 사용할 수 있는 스니펫을 보려면 먼저 로컬 메타데이터 캐시를 refresh
한 다음 search
합니다.
snippet refresh snippet search
snippet search
사용 가능한 스니펫과 해당 버전을 나열하고 간략한 설명을 제공합니다.
이 인스턴스에는 두 번째 비공개 레지스트리가 구성되어 있습니다. 비공개 레지스트리가 먼저 나열되었으므로 해당 스니펫은 사용 가능한 스니펫 목록에서 MongoDB 스니펫 앞에 옵니다.
┌─────────┬─────────────────────────────────┬─────────┬────────────────────────────────────────────────────────────────┐ │ (index) │ name │ version │ description │ ├─────────┼─────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────────┤ │ 0 │ 'PRIVATE..DecryptCards' │ '1.0.5' │ 'Decrypt credit card numbers' │ │ 1 │ 'PRIVATE..updateAuthentication' │ '1.0.2' │ 'Update user pwds and authentication' │ │ 2 │ 'resumetoken' │ '1.0.2' │ 'Resume token decoder script' │ │ 3 │ 'mongocompat' │ '1.0.7' │ 'mongo compatibility script for mongosh' │ │ 4 │ 'spawn-mongod' │ '1.0.1' │ 'Spin up a local mongod process' │ │ 5 │ 'mock-collection' │ '1.0.2' │ 'mockCollection([{ a: 1 }, { a: 2 }]).find({ a: { $gt: 2 } })' │ │ 6 │ 'analyze-schema' │ '1.0.5' │ 'schema(db.coll)' │ └─────────┴─────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────────┘
리포지토리 정보 가져오기
각 스니펫 리포지토리의 홈페이지와 URL을 표시합니다.
snippet info
출력에는 각 리포지토리가 나열됩니다.
Snippet repository URL: https://github.com/YOUR_COMPANY/YOUR_REPO_PATH/index.bson.br --> Homepage: https://davemungo.github.io/mongosh-snippets/ Snippet repository URL: https://compass.mongodb.com/mongosh/snippets-index.bson.br --> Homepage: https://github.com/mongodb-labs/mongosh-snippets
스니펫에 대한 도움말
각 스니펫은 고유하며 자체 인터페이스가 있습니다. 특정 스니펫의 작동 방식에 대한 정보를 찾는 가장 좋은 방법은 snippet help
를 실행하여 README
파일을 확인하는 것입니다.
snippet help mongocompat
이 명령은 mongosh
콘솔에서 mongocompat 스니펫에 대한 README
파일을 표시합니다.
# mongocompat Provide `mongo` legacy shell compatibility APIs. ```js > Array.sum([1, 2, 3]) 6 > tojsononeline({a:1,b:2,c:3}) { "a" : 1, "b" : 2, "c" : 3 } ```
자체 스니펫 패키지를 생성할 때는 유용한 도움말을 제공하는 README.md
파일을 포함해야 합니다.