MongoDB学習(一)インストールと基本使用

13385 ワード

今NoSqlはこんなに热くて、休みに暇があっても用事がなくてもにぎやかで、もっと勉强するのは少しで、利益はきっとあって、悪いところはきっとありません...
皆さんが一番たくさん話しているmongodbを選んで勉強して、まずwww.mongodb.orgにダウンロードして、インストールして直接あなたに解凍すればいいです.
Windows 32 bitマシンを想定して、ディレクトリD:mongodbを作成圧縮パッケージbinディレクトリのexeをすべてmongodbディレクトリの下に配置し、dataフォルダ(D:mongodbdata)を作成します.このdataディレクトリはデータを格納するためのもので、デフォルトはCディスクdatadbディレクトリです.
binディレクトリの下の
mongod.exe-データベースサーバ.
mongo.Exce-管理者shell
カスタムデータストアファイルディレクトリD:mongodbdataを使用する場合は、cmdを使用してD:mongdodbディレクトリにアクセスします.
mongod--dbpath D:mongodbdataを入力して、起動時にデータストアディレクトリを指定します.
そしてmongoを実行します.exeでいいです.
helpコマンドを使用すると、取得したいすべてのコマンドを表示できます.
 
次は開発学習段階に入ります.
 
実は私は本当にとてもホームページのドキュメントをコピーして贴り付けたいです.本当に分かりやすいので、翻訳して书くのがおっくうです.ああ....
起動すると、
By default the shell connects to database "test"on localhost.  You then see:
MongoDB shell version: <whatever>
url: test
connecting to: test
type "help" for help
>
 
接続先:には、接続および使用中のデータベースが表示されます.他のライブラリを使用するには、次のように入力します.
> use mydb
switched to db mydb
 
useコマンドでデータベースを切り替えると、すぐにデータベースを作成することはできません.データベースは、最初にデータを挿入したときに作成が遅延します.show dbsを使用してデータベースを表示できます.
Inserting Data into A Collection
次のshellコマンドは、2つのオブジェクトjとtを作成し、sha 0 kセットに格納します.K-Vは、mapのように、セットと呼ばれます.
> j = { name : "mongo" };
{"name" : "mongo"}
> t = { x : 3 };
{ "x" : 3  }
> db.sha0k.save(j);
> db.sha0k.save(t);
> db.sha0k.find();
{ "_id" : ObjectId("4f2167ee......"), "name" : "mongo" }
{ "_id" : ObjectId("4f2168f....."), "x" : 3 }
>

オブジェクトIdが長すぎて書き終わっていません.show dbsを使用するとmydbがデータベースリストにあり、ライブラリの作成が完了していることがわかります.
いくつか注意しなければならないことがあります(私は本当に翻訳がおっくうです.許してください):
  • We did not predefine the collection. The database creates it automatically on the first insert.(事前定義集合なし)
  • The documents we store can have different fields - in fact in this example, the documents have no common data elements at all. In practice, one usually stores documents of the same structure within collections.()
  • Upon being inserted into the database, objects are assigned an object ID (if they do not already have one) in the field _id .
  • When you run the above example, your ObjectID values will be different.

  • 一度に複数のオブジェクトを追加するには、次の手順に従います.
    > for (var i = 1; i <= 20; i++) db.sha0k.save({x : 4, j : i});
    > db.sha0k.find();
    { "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
    { "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
    { "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 }
    { "_id" : ObjectId("4c220a42f3924d31102bd857"), "x" : 4, "j" : 2 }
    { "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }
    { "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85a"), "x" : 4, "j" : 5 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85b"), "x" : 4, "j" : 6 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85c"), "x" : 4, "j" : 7 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85d"), "x" : 4, "j" : 8 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85e"), "x" : 4, "j" : 9 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85f"), "x" : 4, "j" : 10 }
    { "_id" : ObjectId("4c220a42f3924d31102bd860"), "x" : 4, "j" : 11 }
    { "_id" : ObjectId("4c220a42f3924d31102bd861"), "x" : 4, "j" : 12 }
    { "_id" : ObjectId("4c220a42f3924d31102bd862"), "x" : 4, "j" : 13 }
    { "_id" : ObjectId("4c220a42f3924d31102bd863"), "x" : 4, "j" : 14 }
    { "_id" : ObjectId("4c220a42f3924d31102bd864"), "x" : 4, "j" : 15 }
    { "_id" : ObjectId("4c220a42f3924d31102bd865"), "x" : 4, "j" : 16 }
    { "_id" : ObjectId("4c220a42f3924d31102bd866"), "x" : 4, "j" : 17 }
    { "_id" : ObjectId("4c220a42f3924d31102bd867"), "x" : 4, "j" : 18 }
    has more

    私は全部で20個のデータを挿入しました.ここには18個しか表示されず、shellが反復するカーソルを20まで制限しているので、以下を表示するにはitコマンド、iteratorを使用する必要があります..
     
    { "_id" : ObjectId("4c220a42f3924d31102bd866"), "x" : 4, "j" : 17 }
    { "_id" : ObjectId("4c220a42f3924d31102bd867"), "x" : 4, "j" : 18 }
    has more
    > it
    { "_id" : ObjectId("4c220a42f3924d31102bd868"), "x" : 4, "j" : 19 }
    { "_id" : ObjectId("4c220a42f3924d31102bd869"), "x" : 4, "j" : 20 }
    
     
    Accessing Data From a Query
    ちょうどの方法が面倒なことに気づいたかどうか、20余りはitを打って、40余りは2回打って、順番に類推しなければなりません...
    簡単な方法はありませんか.では、mongodbが見つけたデータはカーソルを指しています.
    > var cursor = db.sha0k.find();
    > while (cursor.hasNext()) printjson(cursor.next());
    { "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
    { "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
    { "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 }
    { "_id" : ObjectId("4c220a42f3924d31102bd857"), "x" : 4, "j" : 2 }
    { "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }
    { "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85a"), "x" : 4, "j" : 5 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85b"), "x" : 4, "j" : 6 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85c"), "x" : 4, "j" : 7 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85d"), "x" : 4, "j" : 8 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85e"), "x" : 4, "j" : 9 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85f"), "x" : 4, "j" : 10 }
    { "_id" : ObjectId("4c220a42f3924d31102bd860"), "x" : 4, "j" : 11 }
    { "_id" : ObjectId("4c220a42f3924d31102bd861"), "x" : 4, "j" : 12 }
    { "_id" : ObjectId("4c220a42f3924d31102bd862"), "x" : 4, "j" : 13 }
    { "_id" : ObjectId("4c220a42f3924d31102bd863"), "x" : 4, "j" : 14 }
    { "_id" : ObjectId("4c220a42f3924d31102bd864"), "x" : 4, "j" : 15 }
    { "_id" : ObjectId("4c220a42f3924d31102bd865"), "x" : 4, "j" : 16 }
    { "_id" : ObjectId("4c220a42f3924d31102bd866"), "x" : 4, "j" : 17 }
    { "_id" : ObjectId("4c220a42f3924d31102bd867"), "x" : 4, "j" : 18 }
    { "_id" : ObjectId("4c220a42f3924d31102bd868"), "x" : 4, "j" : 19 }
    { "_id" : ObjectId("4c220a42f3924d31102bd869"), "x" : 4, "j" : 20 }

    2行目のprintjson()関数は、環境から理解できます.オブジェクトをjsonデータ形式で印刷します.上の例はカーソルスタイルの反復です.
    > var cursor = db.sha0k.find();
    > printjson(cursor[4]);
    { "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }

     When using a cursor this way, note that all values up to the highest accessed (cursor[4] above) are loaded into RAM at the same time. This is inappropriate for large result sets, as you will run out of memory. Cursors should be used as an iterator with any query which returns a large number of elements.(メモリオーバーフローに注意)
    配列アクセス:
    > var arr = db.sha0k.find().toArray();
    > arr[5];
    { "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 }

     
    Specifying What the Query Returns
        SELECT * FROM things WHERE x=4
    > db.sha0k.find({x:4}).forEach(printjson);
    { "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 }
    { "_id" : ObjectId("4c220a42f3924d31102bd857"), "x" : 4, "j" : 2 }
    { "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }
    { "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85a"), "x" : 4, "j" : 5 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85b"), "x" : 4, "j" : 6 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85c"), "x" : 4, "j" : 7 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85d"), "x" : 4, "j" : 8 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85e"), "x" : 4, "j" : 9 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85f"), "x" : 4, "j" : 10 }
    { "_id" : ObjectId("4c220a42f3924d31102bd860"), "x" : 4, "j" : 11 }
    { "_id" : ObjectId("4c220a42f3924d31102bd861"), "x" : 4, "j" : 12 }
    { "_id" : ObjectId("4c220a42f3924d31102bd862"), "x" : 4, "j" : 13 }
    { "_id" : ObjectId("4c220a42f3924d31102bd863"), "x" : 4, "j" : 14 }
    { "_id" : ObjectId("4c220a42f3924d31102bd864"), "x" : 4, "j" : 15 }
    { "_id" : ObjectId("4c220a42f3924d31102bd865"), "x" : 4, "j" : 16 }
    { "_id" : ObjectId("4c220a42f3924d31102bd866"), "x" : 4, "j" : 17 }
    { "_id" : ObjectId("4c220a42f3924d31102bd867"), "x" : 4, "j" : 18 }
    { "_id" : ObjectId("4c220a42f3924d31102bd868"), "x" : 4, "j" : 19 }
    { "_id" : ObjectId("4c220a42f3924d31102bd869"), "x" : 4, "j" : 20 }

       A query document of the form { a:A, b:B, ... } means "where a==A and b==B and ...".
    trueキーワードを使用して、jの値結果セットのみを検索します.
    SELECT j FROM things WHERE x=4
    > db.sha0k.find({x:4}, {j:true}).forEach(printjson);
    { "_id" : ObjectId("4c220a42f3924d31102bd856"), "j" : 1 }
    { "_id" : ObjectId("4c220a42f3924d31102bd857"), "j" : 2 }
    { "_id" : ObjectId("4c220a42f3924d31102bd858"), "j" : 3 }
    { "_id" : ObjectId("4c220a42f3924d31102bd859"), "j" : 4 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85a"), "j" : 5 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85b"), "j" : 6 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85c"), "j" : 7 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85d"), "j" : 8 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85e"), "j" : 9 }
    { "_id" : ObjectId("4c220a42f3924d31102bd85f"), "j" : 10 }
    { "_id" : ObjectId("4c220a42f3924d31102bd860"), "j" : 11 }
    { "_id" : ObjectId("4c220a42f3924d31102bd861"), "j" : 12 }
    { "_id" : ObjectId("4c220a42f3924d31102bd862"), "j" : 13 }
    { "_id" : ObjectId("4c220a42f3924d31102bd863"), "j" : 14 }
    { "_id" : ObjectId("4c220a42f3924d31102bd864"), "j" : 15 }
    { "_id" : ObjectId("4c220a42f3924d31102bd865"), "j" : 16 }
    { "_id" : ObjectId("4c220a42f3924d31102bd866"), "j" : 17 }
    { "_id" : ObjectId("4c220a42f3924d31102bd867"), "j" : 18 }
    { "_id" : ObjectId("4c220a42f3924d31102bd868"), "j" : 19 }
    { "_id" : ObjectId("4c220a42f3924d31102bd869"), "j" : 20 }

    休みました~~~~明日また勉強します...