MongoDB(6) - ドキュメント作成編(2回目)

今回はいろいろなデータ型のドキュメントと配列データをもつドキュメントの追加を行ってみます。

いろいろなデータ型のドキュメント追加

いろいろなデータ型のドキュメントを追加します。

[Mongoシェル]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
> db.col1.insertOne({stringData:"stringData",
doubleData:123.456,
intData:NumberInt(11),
longData:NumberLong(22),
decimalData:NumberDecimal(33.44),
dateData:ISODate("2021-10-10T12:34:56Z"),
booleanData:true,
nullData:null})
{
"acknowledged" : true,
"insertedId" : ObjectId("611c6dd47466ff972f94ccca")
}

> db.col1.find()
{ "_id" : ObjectId("611c6dd47466ff972f94ccca"),
"stringData" : "stringData",
"doubleData" : 123.456,
"intData" : 11,
"longData" : NumberLong(22),
"decimalData" : NumberDecimal("33.4400000000000"),
"dateData" : ISODate("2021-10-10T12:34:56Z"),
"booleanData" : true,
"nullData" : null }

配列データをもつドキュメントを追加

配列データをもつドキュメントを追加します。

(データ追加前にcol1コレクションを一旦削除しています。)

[Mongoシェル]

1
2
3
4
5
6
7
8
9
10
11
> db.col1.drop()
true

> db.col1.insertOne({name:"親", children: ["子1", "子2"]})
{
"acknowledged" : true,
"insertedId" : ObjectId("611c704a7466ff972f94cccb")
}

> db.col1.find()
{ "_id" : ObjectId("611c704a7466ff972f94cccb"), "name" : "親", "children" : [ "子1", "子2" ] }

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
31
32
from pymongo import MongoClient
import bson
from datetime import datetime

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

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

# いろいろなデータ型のドキュメント追加
data1 = {'stringData' : 'stringData',
'doubleData' : 123.456,
'intData' : 11,
'longData' : bson.int64.Int64('22'),
'decimalData': bson.decimal128.Decimal128('33.44'),
'dateData' : datetime(2021, 10, 10, 12, 34, 56),
'booleanData': True,
'nullData' : None}
db1.col1.insert_one(data1)

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

# 配列データをもつドキュメント追加
data1 = {'name':'親', 'children': ['子1', '子2']}
db1.col1.insert_one(data1)

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

次回はオブジェクト型のドキュメントを追加していきます。