Docs Menu
Docs Home
/
MongoDB Shell
/

콘솔에서 스니펫 사용

이 페이지의 내용

  • 스니펫 패키지 설치
  • 스니펫 실행
  • 스니펫 제거
  • 사용 가능한 스니펫 패키지 찾기
  • 리포지토리 정보 가져오기
  • 스니펫에 대한 도움말

경고

이는 실험적인 기능입니다. 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-schemaanalyze-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 파일을 포함해야 합니다.

돌아가기

스니펫