開発者ドキュメント

MongoDB hello worldの例


mongodb hello world、title = "mongodb-nosql"、width = 269、height = 108

MongoDBの作成、更新、検索、レコードの削除、索引付けなどの基本的な操作を行う方法を示す簡単なガイドです。この例では、Mac OS X 10.8で動作するMongoDB 2.0.7を使用しています.MongoDBクライアントとサーバコンソールは、どちらも同じマシン上で実行されます。

1. MongoDBをインストールする

リンク://mongodb/how-to-install-mongodb-on-windows/[Windows]、リンク://mongodb/how-to-install-mongodb-on-ubuntu/[Ubuntu]/mongodb/how-to-install-mongodb-on-mac-os-x/[Mac OS X]インストールは簡単ですが、基本的にMongoDB zipファイルを余分にダウンロードして、 `$ MongoDB-folder/bin/mongod`コマンドを実行するだけです。

`mongod`を使用してMongoDBを起動します。

$./mongod
Tue Sep 11 21:55:36[initandlisten]MongoDB starting :
pid=72280 port=27017 dbpath=/data/db/64-bit host=Yongs-MacBook-Air.local
Tue Sep 11 21:55:36[initandlisten]db version v2.0.7, pdfile version 4.5
Tue Sep 11 21:55:36[initandlisten]options: {}
Tue Sep 11 21:55:36[initandlisten]journal dir=/data/db/journal
Tue Sep 11 21:55:36[initandlisten]recover : no journal files present, no recovery needed
Tue Sep 11 21:55:36[websvr]admin web console waiting for connections on port 28017
Tue Sep 11 21:55:36[initandlisten]waiting for connections on port 27017

2. MongoDBを接続する

MongoDBに接続するには、 `$ MongoDB-folder/bin/mongo`を使います

$ ./mongo
MongoDB shell version: 2.0.7
connecting to: test

3.データベースまたはテーブルを作成する(コレクション)

MongoDBでは、データベースとテーブルの両方が、最初のデータが挿入されると自動的に作成されます。 `use database-name`を使用してデータベースに切り替えます(まだ作成されていなくても)。

以下の例では、1つのレコードを挿入すると、データベース “mkyong”とテーブル “users”がオンザフライで作成されます。

$ ./mongo
MongoDB shell version: 2.0.7
connecting to: test
> use mkyong
switched to db mkyong

> db.users.insert({username:"mkyong",password:"123456"})
> db.users.find()
{ "__id" : ObjectId("504f45cd17f6c778042c3c07"), "username" : "mkyong", "password" : "123456" }

あなたが知っておくべき3つのデータベースコマンド。


  1. show dbs

    – すべてのデータベースを一覧表示します.


  2. use db

    name


    – dbnameに切り替えます.


  3. show collections

    – 現在選択されているデータベースのすべてのテーブルを一覧表示します.

4.レコードを挿入する

レコードを挿入するには、 `db.tablename.insert({data})`や `db.tablename.save({data})`を使用します。どちらも動作します。

> db.users.save({username:"google",password:"google123"})
> db.users.find()
{ "__id" : ObjectId("504f45cd17f6c778042c3c07"), "username" : "mkyong", "password" : "123456" }
{ "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }

5.レコードを更新する

レコードを更新するには、 `db.tablename.update({criteria}、{$ set:{new value}})`を使います。以下の例では、username: “mkyong”のパスワードが更新されています。

> db.users.update({username:"mkyong"},{$set:{password:"hello123"}})
> db.users.find()
{ "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
{ "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }

6.レコードを探す

レコードを検索または照会するには、 `db.tablename.find({criteria})`を使用します。

  • 6.1 ** テーブル “users”のすべてのレコードをリストします。

> db.users.find()
{ "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
{ "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
  • 6.2 ** ユーザー名が “google”のレコードを検索する

> db.users.find({username:"google"})
{ "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
  • 6.3 ** ユーザー名の長さが2以下のレコードを検索する

db.users.find({$where:"this.username.length<=2"})
  • 6.4 ** ユーザ名フィールドが存在するレコードを検索します。

db.users.find({username:{$exists : true}})

7.レコードの削除

レコードを削除するには、 `db.tablename.remove({criteria})`を使います。以下の例では、ユーザー名 “google”のレコードは削除されています。

> db.users.remove({username:"google"})
> db.users.find()
{ "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
  • 注意** テーブルからすべてのレコードを削除するには、 `db.tablename.remove()`を使います。テーブルを削除するには、 `db.tablename.drop()`を使います。

8.インデックス作成

インデックスは、データのクエリの速度を向上させるのに役立ちます。

  • 8.1 ** テーブル “users”のすべてのインデックスを一覧表示します。デフォルトでは、 “__id”列は常にプライマリキーであり、自動的に作成されます。

> db.users.getIndexes()[    {
        "v" : 1,
        "key" : {
            "__id" : 1
        },
        "ns" : "mkyong.users",
        "name" : "__id__"
    }]>
  • 8.2 ** インデックスを作成するには、 `db.tablename.ensureIndex(column)`を使います。以下の例では、カラム “username”にインデックスが作成されています。

> db.users.ensureIndex({username:1})
> db.users.getIndexes()[    {
        "v" : 1,
        "key" : {
            "__id" : 1
        },
        "ns" : "mkyong.users",
        "name" : "__id__"
    },
    {
        "v" : 1,
        "key" : {
            "username" : 1
        },
        "ns" : "mkyong.users",
        "name" : "username__1"
    }]....

**  8.3 ** インデックスを削除するには、 `db.tablename.dropIndex(column)`を使います。以下の例では、列 "username"のインデックスが削除または削除されています。

db.users.dropIndex({username:1})
{ “nIndexesWas” : 2, “ok” : 1 }
db.users.getIndexes()[ {
“v” : 1,
“key” : {


id” : 1
},
“ns” : “mkyong.users”,
“name” : ”

id__”
}]>

**  8.4 ** ユニークなインデックスを作成するには、 `db.tablename.ensureIndex({column}、{unique:true})`を使用します。以下の例では、カラム "username"にユニークなインデックスが作成されています。

db.users.ensureIndex({username:1},{unique:true});
db.users.getIndexes()[ {
“v” : 1,
“key” : {


id” : 1
},
“ns” : “mkyong.users”,
“name” : ”

id


},
{
“v” : 1,
“key” : {
“username” : 1
},
“unique” : true,
“ns” : “mkyong.users”,
“name” : “username

1″
}]…​.

10.ヘルプ

最後に、 `help()`を使ってMongoDBでの作業方法をガイドします。


help

– すべての利用可能なコマンド。

> help
    db.help()                    help on db methods
    db.mycoll.help()             help on collection methods
    rs.help()                    help on replica set methods
    help admin                   administrative help
    help connect                 connecting to a db help
    help keys                    key shortcuts
   //...

10.2

db.help()

– dbのヘルプを表示します。

> db.help()
DB methods:
    db.addUser(username, password[, readOnly=false])
    db.auth(username, password)
    db.cloneDatabase(fromhost)
    db.commandHelp(name) returns the help for the command
    db.copyDatabase(fromdb, todb, fromhost)
   //...

10.3

db.collection.help()

– コレクション(テーブル)のヘルプを表示します。

> db.users.help()
DBCollection help
    db.users.find().help() - show DBCursor help
    db.users.count()
    db.users.dataSize()
    db.users.distinct( key ) - eg. db.users.distinct( 'x' )
    db.users.drop() drop the collection
    db.users.dropIndex(name)
   //...

10.4

db.collection.function.help()

– 関数のヘルプを表示します。

> db.users.find().help()
find() modifiers
    .sort( {...} )
    .limit( n )
    .skip( n )
    .count() - total # of objects matching query, ignores skip,limit
    .size() - total # of objects cursor would return, honors skip,limit
    .explain([verbose])
   //...

完了しました。 MongoDBコマンドのこの要約が他の人に役立つことを期待しています。

モバイルバージョンを終了