初めに
Mongo DBを操作する一番てっとり早い方法は、Mongo shell (cli)を操作する方法です。
show dbs
use xxx(dbの名前)
show collections
などです。
# mongo
MongoDB shell version: 2.6.0
connecting to: test
> show dbs
admin (empty)
local 0.078GB
hoge_db 0.078GB
> use hoge_db
switched to db local
> show collections
fuga_col
system.indexes
この作業をBat化したい! という時に、mongo localhost:27017/hoge_db mongobat.js
みたいに、jsファイルの中に処理内容をjavascriptで書くと、javascriptの内容をMongo cliが解釈してBat処理してくれるのですが、このjavascriptに関して自分にずばり参考になる取っ掛かりのSample Codeがうまく見つからなかったので、ご参考までにCodeをチラシの裏しておきます。
以下のような環境/手順を想定しています。
- Mongoが
localhost:27017
で動いている -
hoge_db
というDatabaseの下に、fuga_col
というCollectionがある - 各例にあるような
mongobat.js
を作り、mongo localhost:27017/hoge_db mongobat.js
と実行する
Case#1 CollectionのRecordを全部消す
mongobat.js
print ("Record num for fuga_col: " + db.fuga_col.count());
db.fuga_col.remove({})
print ("Record num for fuga_col: " + db.fuga_col.count());
Case#2 Collectionを一旦削除して、再度作る
mongobat.js
db.fuga_col.drop();
db.createCollection("fuga_col");
print ("Record num for fuga_col: " + db.fuga_col.count());
Case#3 Recordの中身を1つ出力する
mongobat.js
print (JSON.stringify(db.fuga_col.findOne(), null, " "));
Case#4 Query条件に当てはまるRecordの要素を出力する
ここでは、type
、user_count
というfieldがRecordに存在するという想定
mongobat.js
var query = {type:"new_user"};
db.fuga_col.find(query).forEach(function(x){ print(x.user_count); });