MongoDBでフィールドの数を制限する方法

MongoDBでは、$sizeオペレータを使ってフィールドの数を制限できます。$sizeオペレータは、フィールド値が配列のドキュメントをクエリし、配列の長さが指定した値と等しい場合に使用できます。

次に、あるフィールドの数を特定の値に制限するために$size演算子を使用する方法の例を示します。

usersという名前のコレクションに、次のドキュメントがあるとして考えてみましょう。

{ "_id" : 1, "name" : "Alice", "hobbies" : ["reading", "painting", "gardening"] }
{ "_id" : 2, "name" : "Bob", "hobbies" : ["sports", "music"] }
{ "_id" : 3, "name" : "Charlie", "hobbies" : ["cooking", "travelling", "photography"] }

趣味が2つのみのユーザーを検索したい場合は、次のクエリ ステートメントを使用できます。

db.users.find({ "hobbies": { "$size": 2 } })

以下の結果となります

{ "_id" : 2, "name" : "Bob", "hobbies" : ["sports", "music"] }

$size 演算子は、配列フィールドの長さだけを問い合わせる場合にのみ使用できます。また、$size 演算子は配列の長さをクエリの実行時に計算する必要があるため、パフォーマンスに影響が出る可能性があります。そのため、$size 演算子を使用する場合には、パフォーマンスの問題に注意してください。

bannerAds