MongoDB(7) - ドキュメント作成編(3回目)

今回はオブジェクト型のドキュメント追加を行ってみます。

オブジェクト型のドキュメント追加

オブジェクト型のドキュメントを追加します。

[Mongoシェル]

1
2
3
4
5
6
7
8
9
10
11
12
13
> db.col1.insertOne({name:"親",
child1: {name:"ゆめ", age:2},
child2: {name:"きぼう", age:1}})
{
"acknowledged" : true,
"insertedId" : ObjectId("611ec366681d069119256981")
}

> db.col1.find()
{ "_id" : ObjectId("611ec366681d069119256981"),
"name" : "親",
"child1" : { "name" : "ゆめ", "age" : 2 },
"child2" : { "name" : "きぼう", "age" : 1 } }

配列の中にオブジェクトがあるドキュメント追加

配列の中にオブジェクトがあるドキュメントを追加します。

[Mongoシェル]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> db.col1.insertOne({name:"親",
children:[ {name:"ゆめ", age:2},
{name:"きぼう", age:1}]
})
{
"acknowledged" : true,
"insertedId" : ObjectId("611ec3ad681d069119256982")
}

> db.col1.find()
{ "_id" : ObjectId("611ec3ad681d069119256982"),
"name" : "親",
"children" : [ { "name" : "ゆめ", "age" : 2 },
{ "name" : "きぼう", "age" : 1 } ] }

Pythonで操作

上記の操作をPythonでまとめて行うと、次のようになります。

辞書型のデータを追加だけなのでとても簡単です。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from pymongo import MongoClient

# MongoDB操作用のインスタンスを作成
client = MongoClient() # [IPとポートを指定する場合] MongoClient('10.200.243.203', 27017')

# データベースの取得
db1 = client.db1

# オブジェクト型のドキュメント追加
doc = {}
doc['name'] = '親'
doc['child1'] = {'name':'ゆめ', 'age':2}
doc['child2'] = {'name':'きぼう', 'age':1}
db1.col1.insert_one(doc)

# 全件表示
for x in db1.col1.find():
print(x)

# 配列の中にオブジェクトがあるドキュメント追加
doc = {}
doc['name'] = '親'
doc['children'] = []
doc['children'].append({'name':'ゆめ', 'age':2})
doc['children'].append({'name':'きぼう', 'age':1})
db1.col1.insert_one(doc)

# 全件表示
for x in db1.col1.find():
print(x)

Pythonでは辞書型がとても便利でよく使うと思いますが、その辞書型をさくさくとDBに追加できるMongoDBはとても相性のいいデータベースだと感じました。

次回からは検索に関する操作を行います。