[英]Can I read a csv file inside of a Mongo Shell Javascript file?
[英]How can I run a bare JavaScript file with Mongo Shell?
我知道 MongoDB 有一個 Nodejs 驅動程序,而且所有 MongoDB 命令本質上都是 JavaScript 代碼。 有沒有一種方法可以直接運行 JavaScript 文件而不依賴於 Nodejs 驅動程序? 例如: mongo somejavascriptfile.js
,是否可以按照自己的意願與您的數據庫進行交互? 假設somejavascriptfile.js
有這種內容。
use companies;
show collections;
db.myCollection.insertOne({name: "New Company", location: "Nice Location"});
更新
https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#--eval-option
使用 mongo 的 --eval 選項將 shell 傳遞給 JavaScript 片段,如下所示:
mongo test --eval "printjson(db.getCollectionNames())"
選項1-
// somejavascriptfile.js
db.myCollection.insertOne({name: "New Company1", location: "Nice Location"})
// run
mongo myDB somejavascriptfile.js
選項 2-
// somejavascriptfile.js
db.getSiblingDB('companies').myCollection.insertOne({name: "New Company", location: "Nice Location"});
db.getSiblingDB('companies1').myCollection.insertOne({name: "New Company", location: "Nice Location"});
db.getSiblingDB('companies3').myCollection.insertOne({name: "New Company", location: "Nice Location"})
// run
mongo somejavascriptfile.js
是的,您可以像這樣運行腳本somejavascriptfile.js
mongo myDB somejavascriptfile.js // on a specific databse
mongo somejavascriptfile.js
https://docs.mongodb.com/manual/reference/program/mongo/#std-option-mongo.--eval
--eval 計算指定為參數的 JavaScript 表達式。 mongo 在評估代碼時不會加載自己的環境。 因此,shell 環境的許多選項不可用。
mongo myDB --eval "var myVar = 'testVar'" somejavascriptfile.js // pass some variables to your script
另外,閱讀
https://docs.mongodb.com/manual/reference/method/load/
將 JavaScript 文件加載並運行到當前 shell 環境中。
load() 方法具有以下參數:
load("scripts/myjstest.js")
load("/data/db/scripts/myjstest.js")
除了提供的答案,您還可以運行
echo 'db.myCollection.insertOne({name: "New Company1", location: "Nice Location"})' | mongo myDB
mongo myDB <<< 'db.myCollection.insertOne({name: "New Company1", location: "Nice Location"})'
mongo myDB <<EOF
use companies;
show collections;
db.myCollection.insertOne({name: "New Company", location: "Nice Location"});
EOF
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.