CentOSはMongoDB 2.CRUD操作および共通コマンドを使用
リファレンスドキュメント
https://docs.mongodb.org/manual/core/crud-introduction/ http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/
CRUD
MongoDBに格納されているデータはdocumentsと呼ばれ、JSONのようなキー値ペア方式を使用します.MongoDB documentsはBSON.documentsと呼ばれcollectionsコレクション方式で格納される.コレクションは、共有インデックスを持つ関連documentsのグループです.
query
modification
操作例
いくつかのコマンド
ヘルプの表示
データベース操作
データベースの切り替え
use dbname; 存在しないdbに対して自動的に作成されます.
すべてのデータベースのクエリー
show dbs;
現在使用されているデータベースの削除
db.dropDatabase();
指定したホストからデータベースをクローンする
db.cloneDatabase(“host ip”);
指定したマシンから指定したデータベースデータをコピーします.
db.copyDatabase(“mydb”,”temp”,”host ip”);
現在のデータベースの修復
db.repairDatabase();
現在使用されているデータベースの表示
db.getName(); db;
現在のdbステータスを表示
db.stats();
現在のdbバージョン
db.version();
現在のdbのリンクマシンアドレスの表示
db.getMongo();
Collectionコレクションアクション
コレクションの作成
db.createCollection(“user”,{size:20,capped:5,max:100});
コレクションの取得
db.getCollection(“user”);
すべてのコレクションをクエリー
db.getCollectionNames();
現在のdbのすべての集計インデックスのステータスを表示
db.printCollectionStats();
集合データ空間サイズ
db.user.dataSize();
集合データバー数
db.user.count();
コレクション所在db
db.user.getDB();
集合ステータス
db.user.stats();
集合の合計サイズ
db.user.totalSize();
フォーカスセットの格納スペースのサイズ
db.user.storageSize();
Shardバージョン情報
db.user.getShardVersion();
コレクション名の変更
db.user.renameCollection(“users”);
現在のギャザーセットを削除
db.user.drop();
コレクション内のすべてのレコードを削除
db.user.remove({});
collectionレコード操作
挿入
db.user.insert({id:1,userName:”username”}); db.user.save({name:”,age:22,sex:true});
変更
db.user.update({age:22},{$set:{name:’chen’}},false,true); update user set name='chen'where age=25に相当
削除
db.user.remove({age:22});
クエリーの変更
検索
索引
索引の作成
db.user.ensureIndex({name:1});
検索インデックス
db.user.getIndexes();
≪合計索引レコード・サイズの表示|View Total Index Record Size|emdw≫
db.user.totalIndexSize();
現在のセットのすべてのindex情報を読み込む
db.user.reIndex();
指定した索引の削除
db.user.dropIndex(“name”);
すべてのインデックスを削除
db.user.dropIndexes();
ユーザー操作
ユーザーの追加
https://docs.mongodb.org/manual/reference/method/db.createUser/ 構文
例
データベース認証、セキュリティ・モード
db.auth(“userName”,”123123”);
前のすべてのユーザーを表示
show users;
ユーザーの削除
db.dropUser(“username”);
すべてのユーザーを削除
db.dropAllUsers();
パスワードの変更
db.changeUserPassword(“username”,”password”);
ユーザーの更新
https://docs.mongodb.org/manual/reference/method/db.updateUser/
Error操作
クエリ前のエラー情報
db.getPrevError();
エラーレコードのクリア
db.resetError();
ステートメントブロックアクション
1、print
print(“Hello World!”);
2、一つのオブジェクトをjsonに変換する
tojson(new Object()); tojson(new Object(‘a’));
3、循環追加データ
for (var i = 0; i < 30; i++) { … db.users.save({name: “u_” + i, age: 22 + i, sex: i % 2}); … }; これにより、ループに30個のデータが追加され、同様にカッコの表記for(var i=0;i<30;i+)db.users.save({name:“u_”+i,age:22+i,sex:i%2})を省略することもできる.db.users.find()でクエリーした場合、複数のデータを表示して1ページ表示できない場合は、itで次のページの情報を表示できます.
4、findカーソルクエリー
5、forEach反復サイクル
db.users.find().forEach(printjson); forEachでは、各反復のデータ情報を処理するために関数を渡す必要があります.
6.findカーソルを配列として扱う
var cursor = db.users.find(); cursor[4]; 下付きインデックスが4のデータを取得する配列として処理できる以上、その長さはcursor.length()である.またはcursor.count();これにより、データfor(var i=0、len=c.length();i7.findカーソルを配列に変換する
var arr = db.users.find().toArray(); printjson(arr[2]); toArrayメソッドで配列に変換
8、自分たちの検索結果をカスタマイズする
age<=28のみを表示し、age列のみを表示する
9、forEach伝達関数表示情報
db.things.find({x:4}).forEach(function(x) {print(tojson(x));}); forEachは関数を渡す必要があり、関数は現在のループのオブジェクトであるパラメータを受け入れ、関数体重で入力されたパラメータ情報を処理します.参照先:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html
https://docs.mongodb.org/manual/core/crud-introduction/ http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/
CRUD
MongoDBに格納されているデータはdocumentsと呼ばれ、JSONのようなキー値ペア方式を使用します.MongoDB documentsはBSON.documentsと呼ばれcollectionsコレクション方式で格納される.コレクションは、共有インデックスを持つ関連documentsのグループです.
query
modification
操作例
いくつかのコマンド
ヘルプの表示
help
db.help();
db.collectionname.help();
db.collectionname.find().help();
rs.help();
データベース操作
データベースの切り替え
use dbname; 存在しないdbに対して自動的に作成されます.
すべてのデータベースのクエリー
show dbs;
現在使用されているデータベースの削除
db.dropDatabase();
指定したホストからデータベースをクローンする
db.cloneDatabase(“host ip”);
指定したマシンから指定したデータベースデータをコピーします.
db.copyDatabase(“mydb”,”temp”,”host ip”);
現在のデータベースの修復
db.repairDatabase();
現在使用されているデータベースの表示
db.getName(); db;
現在のdbステータスを表示
db.stats();
現在のdbバージョン
db.version();
現在のdbのリンクマシンアドレスの表示
db.getMongo();
Collectionコレクションアクション
コレクションの作成
db.createCollection(“user”,{size:20,capped:5,max:100});
コレクションの取得
db.getCollection(“user”);
すべてのコレクションをクエリー
db.getCollectionNames();
現在のdbのすべての集計インデックスのステータスを表示
db.printCollectionStats();
集合データ空間サイズ
db.user.dataSize();
集合データバー数
db.user.count();
コレクション所在db
db.user.getDB();
集合ステータス
db.user.stats();
集合の合計サイズ
db.user.totalSize();
フォーカスセットの格納スペースのサイズ
db.user.storageSize();
Shardバージョン情報
db.user.getShardVersion();
コレクション名の変更
db.user.renameCollection(“users”);
現在のギャザーセットを削除
db.user.drop();
コレクション内のすべてのレコードを削除
db.user.remove({});
collectionレコード操作
挿入
db.user.insert({id:1,userName:”username”}); db.user.save({name:”,age:22,sex:true});
変更
db.user.update({age:22},{$set:{name:’chen’}},false,true); update user set name='chen'where age=25に相当
削除
db.user.remove({age:22});
クエリーの変更
db.users.findAndModify({ query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
db.runCommand({ findandmodify : "users", query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
検索
db.user.find();
db.user.distinct("name");
db.user.find({"name","a"});
db.user.find({age:{$gt:22}}); $lt $ate $lte
db.user.find({name:/mongo/});
db.user.find({name:/^mongo/});
db.user.find({},{name:1,age:1}); // age:false, age
db.user.find().sort({age:1}); //-1
5
db.user.find().limit(5);
10
db.user.find().skip(10);
db.user.find().limit(10).skip(5);
,limit pageSize,skip *pageSize
db.user.find({$or:[{name:' '},{name:' '}]});
db.user.findOne();
db.user.find({age:{$gte:25}}).count();
db.user.find({sex:{$exists:true}}).count();
索引
索引の作成
db.user.ensureIndex({name:1});
検索インデックス
db.user.getIndexes();
≪合計索引レコード・サイズの表示|View Total Index Record Size|emdw≫
db.user.totalIndexSize();
現在のセットのすべてのindex情報を読み込む
db.user.reIndex();
指定した索引の削除
db.user.dropIndex(“name”);
すべてのインデックスを削除
db.user.dropIndexes();
ユーザー操作
ユーザーの追加
https://docs.mongodb.org/manual/reference/method/db.createUser/ 構文
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}
例
use test;
db.createUser({ user: "test_user", pwd: "123456", roles: [ "readWrite" ] });
データベース認証、セキュリティ・モード
db.auth(“userName”,”123123”);
前のすべてのユーザーを表示
show users;
ユーザーの削除
db.dropUser(“username”);
すべてのユーザーを削除
db.dropAllUsers();
パスワードの変更
db.changeUserPassword(“username”,”password”);
ユーザーの更新
https://docs.mongodb.org/manual/reference/method/db.updateUser/
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> }
)
Error操作
クエリ前のエラー情報
db.getPrevError();
エラーレコードのクリア
db.resetError();
ステートメントブロックアクション
1、print
print(“Hello World!”);
2、一つのオブジェクトをjsonに変換する
tojson(new Object()); tojson(new Object(‘a’));
3、循環追加データ
for (var i = 0; i < 30; i++) { … db.users.save({name: “u_” + i, age: 22 + i, sex: i % 2}); … }; これにより、ループに30個のデータが追加され、同様にカッコの表記for(var i=0;i<30;i+)db.users.save({name:“u_”+i,age:22+i,sex:i%2})を省略することもできる.db.users.find()でクエリーした場合、複数のデータを表示して1ページ表示できない場合は、itで次のページの情報を表示できます.
4、findカーソルクエリー
var cursor = db.users.find();
while (cursor.hasNext()) {
printjson(cursor.next());
}
users ,
var cursor = db.users.find();
while (cursor.hasNext()) { printjson(cursor.next); }
{}
5、forEach反復サイクル
db.users.find().forEach(printjson); forEachでは、各反復のデータ情報を処理するために関数を渡す必要があります.
6.findカーソルを配列として扱う
var cursor = db.users.find(); cursor[4]; 下付きインデックスが4のデータを取得する配列として処理できる以上、その長さはcursor.length()である.またはcursor.count();これにより、データfor(var i=0、len=c.length();i
var arr = db.users.find().toArray(); printjson(arr[2]); toArrayメソッドで配列に変換
8、自分たちの検索結果をカスタマイズする
age<=28のみを表示し、age列のみを表示する
db.users.find({age: {$lte: 28}}, {age: 1}).forEach(printjson);
db.users.find({age: {$lte: 28}}, {age: true}).forEach(printjson);
age
db.users.find({age: {$lte: 28}}, {age: false}).forEach(printjson);
9、forEach伝達関数表示情報
db.things.find({x:4}).forEach(function(x) {print(tojson(x));}); forEachは関数を渡す必要があり、関数は現在のループのオブジェクトであるパラメータを受け入れ、関数体重で入力されたパラメータ情報を処理します.参照先:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html