Más contenido relacionado
La actualidad más candente (20)
Similar a はじめてのMongoDB (20)
Más de Keisuke Izumiya (10)
はじめてのMongoDB
- 11. MongoDBの特徴
統一的なインターフェースを提供
Ruby
require 'mongo'
!
db = MongoClient.new(❨'localhost', '27017')❩.db(❨'mydb')❩
collection = db.collection(❨'test_col')❩
!
documents = collection.find(❨'name' => 'hoge')❩
Java
import com.mongodb."いろいろ"
!
DB db = new MongoClient(❨ "localhost" , 27017 )❩.getDB(❨"mydb")❩;
DBCollection collection = db.getCollection(❨"test_coll")❩;
!
BasicDBObject query = new BasicDBObject(❨"name", "hoge")❩;
DBCursor documents = collection.find(❨query)❩;
- 18. MongoDBの操作
ドキュメントの作成
> use test #DBの指定
> db.test_collection.insert(❨{❴
"name" : "hoge",
"email" : "hoge@tis.co.jp"
}❵)❩;
>
コレクションはuse等する必要がない
データベースもコレクションも初めてドキュメントを追加した時に
自動で作成される
- 19. MongoDBの操作
ドキュメントの参照
!
#全件検索
> db.test_collection.find(❨)❩;
{❴ "_id" : ObjectId(❨"5234628337f4ddc7fa170918")❩, "name" : "hoge", "email" :
"hoge@tis.co.jp" }❵
>
!
# クエリ検索
> db.test_collection.find(❨{❴"name":"hoge"}❵)❩;
{❴ "_id" : ObjectId(❨"5234628337f4ddc7fa170918")❩, "name" : "hoge", "email" :
"hoge@tis.co.jp" }❵
>
!
#1件検索
> db.test_collection.findOne(❨{❴"name":"hoge"}❵)❩;
{❴
"_id" : ObjectId(❨"5234628337f4ddc7fa170918")❩,
"name" : "hoge",
- 34. MongoDBの運用
MapReduce
APIを叩くことで実行可能
#初期データ
> db.test.insert(❨{❴ "_id" : ObjectId(❨"523444c714a05837e26ca8a0")❩, "name" : "hoge", "age" : 25, "likes" :
"music"}❵)❩
> db.test.insert(❨{❴ "_id" : ObjectId(❨"523444c714a05837e26ca8a1")❩, "name" : "huga", "age" : 30, "likes" :
"sport" }❵)❩
> db.test.insert(❨{❴ "_id" : ObjectId(❨"523444c714a05837e26ca8a2")❩, "name" : "foo", "age" : 40,"likes" :
"music"}❵)❩
> db.test.insert(❨{❴ "_id" : ObjectId(❨"523444c714a05837e26ca8a3")❩, "name" : "bar", "age" : 21, "likes" :
"coding" }❵)❩
> db.test.insert(❨{❴ "_id" : ObjectId(❨"523444c714a05837e26ca8a4")❩, "name" : "test", "age" : 19, "likes" :
"sport" }❵)❩
!
> var map = function(❨)❩{❴ emit(❨this.likes,1)❩; }❵;
>
> var reduce = function(❨key, value)❩{❴ return Array.sum(❨value)❩; }❵;
>
> db.test.mapReduce(❨map, reduce, {❴ query : {❴"age" : {❴$gt : 20}❵}❵, out : "likes_map"}❵)❩
!
/* 結果サマリ(省略)*/