Object (ドキュメント) (ネストドキュメント)

最終更新:2026-10-09

Object (ドキュメント) (ネストドキュメント)

Object はネストされたサブドキュメントです。MongoDB は自己記述的なモデルのために任意の深さでネストできます。ネストしたフィールドにはドットパスでアクセスし、クエリでは引用符で囲みます。例: `'profile.address.city'`。1対1のデータ(ユーザープロフィール、注文の住所)に適しており、独立してクエリされる・成長するデータは別コレクションに切り出します。

カテゴリBSON 型
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ profile: { name: "alice", address: { city: "beijing" } } }
db.users.find({ "profile.address.city": "beijing" })

戻り値:ネストされたドキュメントそのもの。クエリでは一致するドキュメントを返します

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// Object: ネストドキュメントの書き込みとクエリ
use shop
db.users.insertOne({ profile: { name: 'alice', address: { city: 'beijing' } } })
db.users.find({ 'profile.address.city': 'beijing' })

出力:

{ _id: ObjectId('...'), profile: { name: 'alice', address: { city: 'beijing' } } }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Qドキュメントはどの深さまでネストできますか?
A公式の上限は約 100 レベルですが、実用上はまず 16MB のドキュメントサイズ制限が先に効きます。
Q埋め込むべきか、別コレクションにすべきか?
A親と一緒に読み出す 1対1 データは埋め込み、独立して成長・クエリされるデータは別コレクションにします。
Qネストしたフィールドはどうクエリしますか?
A引用符付きのドットパスを使います: { 'profile.address.city': 'beijing' }。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%