programing

js 내의 다른 파일을 포함하여 mongodb에서 javascript 스크립트(.js 파일)를 실행합니다.

showcode 2023. 3. 21. 22:43
반응형

js 내의 다른 파일을 포함하여 mongodb에서 javascript 스크립트(.js 파일)를 실행합니다.

mongodb 데이터 삽입 및 업데이트를 위한 긴 스크립트를 작성하고 싶습니다.

  1. 스크립트가 포함된 외부 js 파일을 호출할 수 있습니까?
  2. 실행 중인 js 파일에서 다른 js 파일을 포함할 수 있습니까?

로드 함수 사용

load(filename)

mongo 쉘에서 임의의 .js 파일을 직접 호출할 수 있으며 mongo는 JavaScript를 실행합니다.

:mongo localhost:27017/mydb myfile.js

localhost 포트 27017을 사용하여 mydb 데이터베이스에 접속하는 mongo 셸의 myfile.js 스크립트를 실행합니다.

외부 js를 로드하기 위해 쓸 수 있습니다.

load("/data/db/scripts/myloadjs.js")

2개의 js 파일myFileOne.js와 myFileTwo.js가 있다고 가정합니다.

myFileOne.js

print('From file 1');
load('myFileTwo.js');     // Load other js file .

myFileTwo.js

print('From file 2');

몽고셸

>mongo myFileOne.js

산출량

From file 1
From file 2

또 다른 방법은 터미널 프롬프트에서 파일을 mongo로 전달하는 것입니다.

$ mongo < myjstest.js

그러면 mongo 세션이 시작되고 파일이 실행된 후 종료됩니다.하지만 1일부터 두 번째 파일을 호출하는 것은 확실치 않습니다.안 먹어봤어.

네, 가능합니다.스크립트 파일의 기본 위치는 data/db입니다.

여기에 스크립트를 넣으면

load("myjstest.js")      // or 
load("/data/db/myjstest.js")

다중 js 파일 실행용

#!/bin/bash
cd /root/migrate/

ls -1 *.js | sed 's/.js$//' | while read name; do
     start=`date +%s`
     mongo localhost:27017/wbars $name.js;
     end=`date +%s`
     runtime1=$((end-start))
     runtime=$(printf '%dh:%dm:%ds\n' $(($runtime1/3600)) $(($secs%3600/60)) $(($secs%60)))
     echo @@@@@@@@@@@@@ $runtime $name.js completed @@@@@@@@@@@
     echo "$name.js completed"
     sync
     echo 1 > /proc/sys/vm/drop_caches
     echo 2 > /proc/sys/vm/drop_caches
     echo 3 > /proc/sys/vm/drop_caches
done

외부 파일을 호출하려면 다음을 사용합니다.

로드("path\file")

예: file.js 파일이 (Windows OS의) "Documents" 파일에 있는 경우 다음과 같이 입력할 수 있습니다.

로드("C:\users\user_name\Documents\file.js")

언급URL : https://stackoverflow.com/questions/22248730/run-javascript-script-js-file-in-mongodb-including-another-file-inside-js

반응형