MongoDB(5) - ドキュメント作成編

今回はMongoDBのドキュメント追加に関する操作を行ってみます。

ドキュメントはRDBのレコードに相当します。

1件のドキュメント追加

ドキュメントを1件追加する場合は、insertOne関数を使います。

ドキュメントを追加するコレクションはcol1です。

コレクション(col1)は作成していなくても自動で作成されます。

(便利な反面、意図しないコレクションを作成してしまう可能性がありますので、気を付けてください。)

[Mongoシェル]

1
2
3
4
5
6
7
8
> db.col1.insertOne({name:"佐藤", age:10})
{
"acknowledged" : true,
"insertedId" : ObjectId("611b0f607466ff972f94ccc6")
}

> db.col1.find()
{ "_id" : ObjectId("611b0f607466ff972f94ccc6"), "name" : "佐藤", "age" : 10 }

複数のドキュメント追加

ドキュメントを複数追加する場合は、insertMany関数を使います。

insertMany関数には、配列データを渡します。

[Mongoシェル]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
> db.col1.insertMany([
{name:"鈴木", age:12},
{name:"高橋", age:15},
{name:"中村", age:19}
])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("611b10127466ff972f94ccc7"),
ObjectId("611b10127466ff972f94ccc8"),
ObjectId("611b10127466ff972f94ccc9")
]
}

> db.col1.find()
{ "_id" : ObjectId("611b0f607466ff972f94ccc6"), "name" : "佐藤", "age" : 10 }
{ "_id" : ObjectId("611b10127466ff972f94ccc7"), "name" : "鈴木", "age" : 12 }
{ "_id" : ObjectId("611b10127466ff972f94ccc8"), "name" : "高橋", "age" : 15 }
{ "_id" : ObjectId("611b10127466ff972f94ccc9"), "name" : "中村", "age" : 19 }

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
from pymongo import MongoClient

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

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

# ドキュメント1件追加
data1 = {'name':'佐藤', 'age':10}
db1.col1.insert_one(data1)

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

# ドキュメント複数追加
data3 = [{'name':'鈴木', 'age':12},
{'name':'高橋', 'age':15},
{'name':'中村', 'age':19}]
db1.col1.insert_many(data3)

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

次回はいろいろなデータ型や配列データをドキュメントとして追加していきます。