MongoDBの簡単入門

4233 ワード

MongoDBの基本概念
  • MongoDBのデータユニットは であり、JavaScriptのオブジェクトと見なされ、関係データベースの行と類似している.
  • セットは関係データベースのテーブルと類似しており、モードがないことを区別している.
  • MongoDBデータベースごとに独自の集合と権限があります.
  • MongoDBの操作は主に端末のJavaScript Shellによって行われる.
  • 文書
    JavaScriptでは、ドキュメントはオブジェクトとして表示されます.
    {"name": "XueSeason", "age": 22}
    
    以上の文書には、XueSeasonの値を持つnameキーがあり、ageキーの値は22です.この文書からいくつかの概念を説明しました.
  • 文書のキーパッドのペアは順序良く、上記の例では、nameとageのキーのペアを置き換えると、新しい文書として見なされます.
  • 文書の値は文字列形式だけでなく、他のより高級なタイプもあります.
  • 文書のキーはUTF-8文字を使用する..および$は通常保持され、特定の環境でのみ使用され、_も保持される.
  • 集合する
    集合は文書セットであり、NoSQLとしては関係データベースとは別に表である.
    モードなし
    集合は無モードです.すなわち、異なるタイプの文書は同じセットに共存することができます.
    {"name": "XueSeason", "age": 22}
    {"book": "The old man and the Sea"}
    
    上の文書は全く異なる2つの文書です.一つの集合が様々なタイプを収容できるのに、なぜ多くの集合が必要ですか?マルチ集合を使用するという意味は、
  • は、エントロピー値を低減する.混乱を減らす.
  • 速度の優越性.特定のタイプの文書を複数のサブセットに分けて照会効率を向上させる.
  • は、同じタイプの文書に1セットのまとめがあり、データをより集中させる.
  • できるだけサブセットを使ってデータを整理することをオススメします.
    名前を付ける
  • セット名は空の文字列ではいけません.
  • \0文字を含んではいけません.
  • は、system.で始まることができず、システムのセットのプレフィックスを保持する.
  • は保持文字$を含んではいけません.
  • MongoDBを起動する
    MongoDBのインストールに成功し、正しく配置されることを確認します.端末入力mongodコマンド.
    以下のような情報がある場合:
    2015-03-28T13:35:04.067+0800 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
    2015-03-28T13:35:04.067+0800 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to lock file: /data/db/mongod.lock errno:35 Resource temporarily unavailable. Is a mongod instance already running?, terminating
    2015-03-28T13:35:04.067+0800 I CONTROL  [initandlisten] dbexit:  rc: 100
    
    すでにMongoDBプログラムがバックグラウンドで実行されていることを示します.ps -efによって関連pidが検索され、kill [pid]が強制的に閉じられます.
    MongoDBは、パラメータがない場合はデフォルトで/data/dbディレクトリを使用し、27017ポートを傍受します.このディレクトリが存在しない場合や書き込み不可の場合、サーバーも起動に失敗します.
    MongoDB Shellmongoを実行してshellを起動します.
    xuejijiedeMacBook-Pro:~ xuejijie$ mongo
    MongoDB shell version: 3.0.1
    connecting to: test
    > 
    
    この場合、REPL方式でJavaScriptコードを実行できます.
    MongoDBクライアント
    MongoDB Shellの本当の強さはJavaScriptの解凍器だけではなく、MongoDBクライアントでもある.オープンすると、shellはMongoDBサーバのtestデータベースに接続され、このデータベースをグローバル変数dbに接続します.
    データベースを選択:
    > use mydatabase
    switched to db mydatabase
    > db
    mydatabase
    
    CRUD
    次に操作データの4つの基本操作を学びます.
    作成insert関数を使用して、対応するセットにドキュメントを追加することができます.
    > post = { "title": "The first day", "content": "It is awesome time", "date": new Date()}
    {
        "title" : "The first day",
        "content" : "It is awesome time",
        "date" : ISODate("2015-03-28T05:53:16.355Z")
    }
    > db.blog.insert(post)
    WriteResult({ "nInserted" : 1 })
    > db.blog.find()
    { "_id" : ObjectId("551641e5b1f58081c3b9d7ea"), "title" : "The first day", "content" : "It is awesome time", "date" : ISODate("2015-03-28T05:53:16.355Z") }
    
    上記の操作はまずpostオブジェクトを作成し、insert方法でブログの集合にデータを保存し、最後にfind関数を通して、ブログの集合中のすべての文書を展示します.
    このとき、追加のキー_idがドキュメントに追加され、システムが自動的に追加するキーです.
    読み込み
    findはセットのすべてのドキュメントを返します.一つの文書だけを見たいなら、findOneを使ってもいいです.より多くの照会内容について、新しい文章として説明します.
    更新update関数は、2つのパラメータを受け取ります.更新されたドキュメントの条件、新しいドキュメントです.
    > post.comment = []
    [ ]
    > db.blog.update({title: "The first day"}, post)
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.blog.find()
    { "_id" : ObjectId("551641e5b1f58081c3b9d7ea"), "title" : "The first day", "content" : "It is awesome time", "date" : ISODate("2015-03-28T05:53:16.355Z"), "comment" : [ ] }
    
    削除remove関数は、ドキュメントを完全に削除します.参照がない場合は、セット内のすべてのドキュメントを削除します.限定条件から指定内容を削除することもできます.
    より多くのshell命令はhelpで確認できます.または公式docを参照してください.
    ブログです