mono実行JavaScriptスクリプト
8742 ワード
mongoクライアントは、2つの方法でmongodbサービスと対話することができます.1つはmongo shellで、1つはjavascriptスクリプトを実行することです.mongo shellは、通常より多く使われていますが、javascriptスクリプトはあまり使われません.この間、一つのプロジェクトの中でjsスクリプトの量を書いてデータを更新しました.まとめてみます.
どのように実行しますか mongo host:port/database/dir/xxxx.js 例:モンゴルロカホスト:27017/hr_assistant index.jsはindex.jsの中で先にmongodbと挨拶して、それから現在のデータベースを印刷します.上記の方法は、mongoクライアントによって直接にjsスクリプトを実行することであり、クライアントに入るコマンドラインインタラクションにおいて、ロード関数を使用してスクリプト をロードすることもできる.
例:
jsシナリオとモノモンシェルの違い
mongo Shellは簡略版のJavaScript Shellであり、javascriptコードを自由に作成できます.また、多くのmongodb特有のオブジェクトと方法が内蔵されていますが、脚本ではshow databases、show collection、use testのようなコマンドは使えません.以下の表は、一般的なコマンドに対応する関数です.
command
機能
show dbs,show databases
db.adminCommund('listDatabases')
use db
db=db.getSiblingDB('db')
ショー・コレクション
db.get Collection Names()
show users
db.getUsers()
jsスクリプトでよく使われる2つの関数があります.print()/print json()はパラメータを標準出力に印刷できます.
例index.js:
jsスクリプトをどうやって実行するかということと、mongoshellとの違いを知ると、jsファイルではcurdBoyとなります.jsファイルでは、mongoクライアントが提供する添削のすべての方法が利用できます.js内蔵オブジェクト/配列の方法を加えると、鬼に金棒です.以下は簡単な例です.
どのように実行しますか
print('hello mongodb')
//
print(db);
実行結果:MongoDB shell version v4.0.11
connecting to: mongodb://localhost:27017/hr_assistant?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("3e0c8e42-57d5-429d-a00d-bad97ec95d73") }
MongoDB server version: 4.0.11
hello mongodb
hr_assistant
例:
//
pan@ubuntu18:~/disk/panyanan/blog/mongodb$ mongo localhost:27017/hr_assistant
MongoDB shell version v4.0.11
connecting to: mongodb://127.0.0.1:27017/
// load
> load('index.js')
hello mongodb
hr_assistant
true
上記の2つの方法に注意してください.スクリプトのパス問題に注意してください.シナリオのすべてのフォルダで、mongoコマンドを実行してください.jsシナリオとモノモンシェルの違い
mongo Shellは簡略版のJavaScript Shellであり、javascriptコードを自由に作成できます.また、多くのmongodb特有のオブジェクトと方法が内蔵されていますが、脚本ではshow databases、show collection、use testのようなコマンドは使えません.以下の表は、一般的なコマンドに対応する関数です.
command
機能
show dbs,show databases
db.adminCommund('listDatabases')
use db
db=db.getSiblingDB('db')
ショー・コレクション
db.get Collection Names()
show users
db.getUsers()
jsスクリプトでよく使われる2つの関数があります.print()/print json()はパラメータを標準出力に印刷できます.
例index.js:
// --nodb mongo
const conn = new Mongo('localhost:27017');
print(` : ${conn}`)
let db = conn.getDB('hr_assistant');
print(` :${db}`);
const dbs = db.adminCommand('listDatabases');
print(' :')
printjson(dbs);
const collections = db.getCollectionNames();
print(`${db} collections:`);
printjson(collections);
db = db.getSiblingDB('test');
print(` ${db}`);
実行結果:pan@ubuntu18:~/disk/panyanan/blog/mongodb$ mongo --nodb index.js
MongoDB shell version v4.0.11
: connection to localhost:27017
:hr_assistant
:
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 32768,
"empty" : false
},
{
"name" : "config",
"sizeOnDisk" : 49152,
"empty" : false
},
{
"name" : "hr_assistant",
"sizeOnDisk" : 98873344,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 73728,
"empty" : false
}
],
"totalSize" : 99028992,
"ok" : 1
}
hr_assistant collections:
[
"hr_business_call_records",
"hr_business_info_collection",
"hr_business_info_follow",
"hr_business_info_interviewed",
"hr_business_info_meeting",
"hr_business_info_planned",
"hr_business_info_user",
"hr_business_resume_assessment",
"hr_business_resume_basic_work",
"hr_business_resume_basiceducation",
"hr_business_resume_basichealth",
"hr_business_resume_basicinfo",
"hr_business_resume_head_portrait",
"hr_business_resume_jobobjective",
"hr_business_resume_percentage",
"hr_business_resume_workexp",
"hr_business_sign_list",
"hr_business_signed_result"
]
test
楽しい遊びjsスクリプトをどうやって実行するかということと、mongoshellとの違いを知ると、jsファイルではcurdBoyとなります.jsファイルでは、mongoクライアントが提供する添削のすべての方法が利用できます.js内蔵オブジェクト/配列の方法を加えると、鬼に金棒です.以下は簡単な例です.
const conn = new Mongo('localhost:27017');
const db = conn.getDB('test');
// emp
let emps =[
{
ename: 'Smith',
deptno: 20,
job: 'salesman',
mgr: '',
sal: 800,
},
{
ename: 'Peter',
deptno: 30,
job: 'manager',
mgr: '',
sal: 1000,
},
{
ename: 'Jack',
deptno: 40,
job: 'president',
mgr: '',
sal: 3000,
},
{
ename: 'Rose',
deptno: 50,
job: 'analyst',
mgr: '',
sal: 1500,
},
]
//
let result = db.emps.insert(emps);
print(` `)
print(result);
// jack
let jack = db.emps.findOne({ename: 'Jack'});
print(` jack:`)
printjson(jack)
// jack 5000
result = db.emps.update({_id: jack._id}, {$set: {sal: 5000}})
jack = db.emps.findOne({ename: 'Jack'});
// jack
print(' jack:')
printjson(jack)
//
emps = db.emps.find({});
print(' :');
// jordan
emps.forEach(function(emp) {
printjson(emp);
emp.mgr = 'Jordan';
db.emps.save(emp)
});
emps = db.emps.find({});
print(' jordan');
while(emps.hasNext()) {
printjson(emps.next())
}
result = db.emps.remove({});
print(` :: ${result}`);
実行結果pan@ubuntu18:~/disk/panyanan/blog/mongodb$ mongo --nodb curd.js
MongoDB shell version v4.0.11
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 4,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
jack:
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6c"),
"ename" : "Jack",
"deptno" : 40,
"job" : "president",
"mgr" : "",
"sal" : 3000
}
jack:
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6c"),
"ename" : "Jack",
"deptno" : 40,
"job" : "president",
"mgr" : "",
"sal" : 5000
}
:
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6a"),
"ename" : "Smith",
"deptno" : 20,
"job" : "salesman",
"mgr" : "",
"sal" : 800
}
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6b"),
"ename" : "Peter",
"deptno" : 30,
"job" : "manager",
"mgr" : "",
"sal" : 1000
}
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6c"),
"ename" : "Jack",
"deptno" : 40,
"job" : "president",
"mgr" : "",
"sal" : 5000
}
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6d"),
"ename" : "Rose",
"deptno" : 50,
"job" : "analyst",
"mgr" : "",
"sal" : 1500
}
jordan
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6a"),
"ename" : "Smith",
"deptno" : 20,
"job" : "salesman",
"mgr" : "Jordan",
"sal" : 800
}
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6b"),
"ename" : "Peter",
"deptno" : 30,
"job" : "manager",
"mgr" : "Jordan",
"sal" : 1000
}
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6c"),
"ename" : "Jack",
"deptno" : 40,
"job" : "president",
"mgr" : "Jordan",
"sal" : 5000
}
{
"_id" : ObjectId("5d44fdd70998b36ed6983e6d"),
"ename" : "Rose",
"deptno" : 50,
"job" : "analyst",
"mgr" : "Jordan",
"sal" : 1500
}
:: WriteResult({ "nRemoved" : 4 })
転載先:https://www.cnblogs.com/pandapeter/p/11294232.html