Docs Menu
Docs Home
/
MongoDB Shell
/

스크립트에 외부 파일 및 모듈 넣기

이 페이지의 내용

  • 로컬 파일 필요
  • 내장 모듈 필요
  • npm 모듈 필요

중요

Node.js, 모듈 및 require() 에 대한 전체 설명입니다. 함수는 이 튜토리얼의 범위를 벗어납니다. 자세한 내용은 Node.js 설명서를 참조하세요.

상호 작용에서 파일과 모듈을 사용하려면 mongosh require() 함수입니다.

mongosh 스크립트에서 다음을 요구할 수 있습니다.

  • 로컬 파일

  • 내장 Node.js 모듈

  • External (npm) Node.js modules

추가 설정이나 구성 없이 mongosh 스크립트에서 JavaScript 파일을 사용할 수 있습니다.

참고

mongosh require()로 가져온 파일을 실행하지 않습니다. 대신 mongosh는 가져온 파일의 모든 내용을 현재 실행 범위에 추가합니다.

예시

현재 작업 디렉토리에 있는 test.js라는 파일을 포함하려면 다음 명령 중 하나를 사용합니다.

require('./tests.js')
var tests = require('./tests.js')

추가 설정이나 구성 없이 mongosh에 내장 Node.js 모듈(예: fs)을 요구할 수 있습니다.

예시

다음 예시에서는 아래와 같은 스크립트를 작성하고 실행합니다.

  • 기본 포트에서 실행 중인 로컬 배포에 연결합니다.

  • myDatabase.employees 컬렉션을 샘플 데이터로 채웁니다.

  • fs 모듈을 사용하여 myDatabase.employees collection의 문서를 employee.json 파일에 씁니다.

  1. 다음 내용으로 employee-to-text-file.js(이)라는 이름의 파일을 생성하세요.

    const fs = require('fs');
    db = connect('mongodb://localhost/myDatabase');
    db.employees.insertMany( [
    { "name": "Alice", "department": "engineering" },
    { "name": "Bob", "department": "sales" },
    { "name": "Carol", "department": "finance" }
    ] )
    const document = db.employees.findOne();
    fs.writeFileSync('employee.json', JSON.stringify(document));
  2. employee-to-text-file.js 파일을 로드하고 실행하려면 mongosh에서 다음 명령을 실행합니다.

    load("employee-to-text-file.js")
  3. 데이터가 파일에 기록되었는지 확인하려면 employee.json 파일을 엽니다.

Node.js 모듈(예: npm에서 다운로드한 모듈)이 필요할 수 있습니다. 외부 모듈을 사용하려면 다음 중 하나를 통해 모듈을 설치해야 합니다.

  • 글로벌

  • 현재 작업 디렉토리의 node_modules 디렉토리에 있습니다.

Node.js 모듈에는 두 가지 패키징 표준이 있습니다.

패키지 표준
require()와 함께 작동합니다
CommonJS (CJS)
ECMAScript Module (ES Module)
No

mongosh에서 ES 모듈을 require() 할 수 없습니다. ES 모듈의 기능을 사용하려면 대신 사용할 수 있는 CommonJS 버전이 있는지 확인하세요. 자세한 내용은 다음을 참조하세요.

이 구조를 사용하여 원격 npm 모듈을 요구할 수 있습니다.

const localRequire = require('module').createRequire(__filename);

예시로 resumetoken 스니펫의 index.js를 참조하세요.

예시

중요

이 예시를 실행하려면 date-fns 모듈을 전역으로 설치하거나 현재 작업 디렉토리의 node_modules 디렉토리에 설치해야 합니다.

다음 예시에서는 아래와 같은 스크립트를 작성하고 실행합니다.

  • 기본 포트에서 실행 중인 로컬 배포에 연결합니다.

  • myDatabase.cakeSales 컬렉션을 샘플 데이터로 채웁니다.

  • date-fns 모듈을 사용하여 날짜 서식을 지정합니다.

  1. 다음 내용으로 date-fns-formatting.js(이)라는 이름의 파일을 생성하세요.

    const formatDistance = require('date-fns/formatDistance')
    db = connect('mongodb://localhost/myDatabase');
    db.cakeSales.insertMany( [
    { _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"),
    state: "CA", price: 13, quantity: 120 },
    { _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"),
    state: "WA", price: 14, quantity: 140 },
    { _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"),
    state: "CA", price: 12, quantity: 145 },
    { _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"),
    state: "WA", price: 13, quantity: 104 },
    { _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"),
    state: "CA", price: 41, quantity: 162 },
    { _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"),
    state: "WA", price: 43, quantity: 134 }
    ] )
    const saleDate0 = db.cakeSales.findOne( { _id: 0 } ).orderDate
    const saleDate1 = db.cakeSales.findOne( { _id: 1 } ).orderDate
    const saleDateDistance0 = formatDistance(saleDate0, new Date(), { addSuffix: true })
    const saleDateDistance1 = formatDistance(saleDate1, new Date(), { addSuffix: true })
    print("{ _id: 0 } orderDate was " + saleDateDistance0)
    print("{ _id: 1 } orderDate was " + saleDateDistance1)
  2. date-fns-formatting.js 파일을 로드하고 실행하려면 mongosh에서 다음 명령을 실행합니다.

    load("date-fns-formatting.js")

    mongosh 다음과 같은 내용을 출력합니다.

    { _id: 0 } orderDate was over 1 year ago
    { _id: 1 } orderDate was 7 months ago

    출력된 결과는 예시를 실행하는 날짜에 따라 달라질 수 있습니다.

돌아가기

스크립트 작성하기