mongodb-サーバの構築と基本的な操作


シンプルなサーバの構築


1.mongodb_という名前のstudyのディレクトリ、ディレクトリ2に入ります.フォルダの作成:data、mongoのデータファイルを格納3.フォルダの作成:log、mongoのログファイルを格納4.フォルダの作成:bin、mongoの実行可能ファイルを格納する4.フォルダの作成:conf、mongoのプロファイルの格納
[ opt]# mkdir mongodb_study
[ opt]# cd mongodb_study/
[ mongodb_study]# ls
[ mongodb_study]# mkdir data
[ mongodb_study]# mkdir log
[ mongodb_study]# mkdir conf
[ mongodb_study]# mkdir bin
[ mongodb_study]# cp /usr/local/mongodb/bin/mongod bin/
[ mongodb_study]# cd conf
[ conf]# vim mongod.conf
    port = 27017
    dbpath = data
    logpath = log/mongod.log
    fork =true
[ conf]# cd ..
[ mongodb_study]# ./bin/mongod -f conf/mongod.conf
    about to fork child process, waiting until server is ready for connections.
    forked process: 58710
    child process started successfully, parent exiting

mongoクライアント接続

[mongodb_study]# cp /usr/local/mongodb/bin/mongo bin/
[mongodb_study]# ./bin/mongo -h
[mongodb_study]# ./bin/mongo 127.0.0.1:12345

tips:なぜ最初の接続はtestデータベースに接続されたのですか.adminとlocalデータベースを誤操作して、自動的に作成するのを恐れています.tips:なぜデータベースを閉じてkill-9を使わないのですか.kill-9 mongodでmongodbサービスがオンにならない場合、/dataの下のmongodeを削除するのが解決策だと聞いていました.ロックは正常に使用できます.だからkillを使えばいいか>use adminの後に>dbを使えばいい.shutdownServer()

mongo基本操作


データベース操作

>show dbs
>use test
>db.dropDatabase()

tips:Localデータベースlocalデータベースを慎重に使用します.名前から分かるように、ローカルにデータを格納するだけです.つまり、localデータベースの内容はコピーセットの他のノードに同期しません.現在localデータベースには、レプリカセットの構成情報、oplog情報が主に格納されています.これらの情報は、各Mongodプロセス固有であり、レプリカセットの他のノードに同期する必要はありません.MongoDBを使用する場合、重要なデータはlocalデータベースに保存しないでください.そうしないと、ノードが障害を起こした場合、localに保存されているデータが失われます.tips:adminデータベースを慎重に使用Mongodがauthオプションを有効にすると、ユーザーはデータベースアカウントを作成する必要があり、アクセス時にアカウント情報に基づいて認証し、データベースアカウント情報はadminデータベースの下に格納されます.adminデータベースのシステムusers、system.rolesの2つのセットのデータは、MongoDBがメモリにcacheするため、認証のたびにディスクからユーザーロール情報をロードする必要はありません.

挿入

> use test
> db.test_collection.insert({x:1})
> show collections
> db.test_collection.find()
> db.test_collection.insert({x:2,_id:1})
> db.test_collection.insert({x:3,_id:1}) //_id 
> db.test_collection.insert({x:3,_id:2}) 
> db.test_collection.find({x:2})
> db.test_collection.find().count()
> db.test_collection.find().skip(1).limit(1).sort({x:1})
> db.test_collection.find().sort({x:-1})

更新

> db.test_u.insert({x:100,y:100,z:100})
> db.test_u.update({z:100},{y:99}) // 
> db.test_u.update({z:100},{$set:{y:99}})// 
> db.test_u.update({y:100},{$set:{y:99}})// 
> db.test_u.update({y:100},{$set:{y:999}},true)// 
> db.test_u.update({y:999},{y:1000})// 
> db.test_u.update({y:999},{$set:{y:1000}},false,true)// 

削除

> db.test_u.remove()  // , 
> db.test_u.remove({y:1000}) // 3