ドキュメントのネスト
MongoDBはドキュメントをネストさせることができます。
Mongo Shellから
insert
> db.nest.insert({x:5,list:{a:1,b:2}})
確認
> db.nest.find().forEach(printjson) { "_id" : ObjectId("4fb5e74522646db867ef11f6"), "x" : 1, "list" : { "a" : 1, "b" : 2 } }
rubyから
rubyからMongoDBへネストしたドキュメントをinserして表示するサンプル。
#!/usr/local/bin/ruby # -*- encoding: utf-8 -*- require 'mongo' db_name="test" coll_name = "nest" db = Mongo::Connection.new.db(db_name) coll = db.collection(coll_name) coll.insert({:x => 2,:list => {:a => 2, :b => 4}}) coll.find().each{ |doc| puts doc.inspect }
[root@xxx xxx]# ruby mongo_nest.rb {"_id"=>BSON::ObjectId('4fb5e74522646db867ef11f6'), "x"=>5.0, "list"=>{"a"=>1.0, "b"=>2.0}} {"_id"=>BSON::ObjectId('4fb5e8523e91d8207d000001'), "x"=>1, "list"=>{"a"=>3, "b"=>9}}