今回は配列、オブジェクトの値で検索を行います。
サンプルデータ
次のようなデータをcol1コレクションに設定します。
[Mongoシェル]
1 | > db.col1.insertOne({name:"鈴木", |
配列の要素数で検索
配列の要素数で検索する場合は、$sizeを使います。
skill配列の要素数が3のドキュメントを検索してみます。
[Mongoシェル]
1 | > db.col1.find({skill:{$size:3}}) |
配列の中に指定した値をすべて持つかどうかを検索
配列の中に指定した値がすべて含まれているかどうかを検索する場合には、$allを使います。
skill配列にPythonとDrivingの両方が含まれているドキュメントを検索してみます。
[Mongoシェル]
1 | > db.col1.find({skill:{$all:["Python", "Driving"]}}) |
オブジェクトの値で検索
サンプルデータの1つ目のドキュメントには、child配列の中にオブジェクトが設定されています。
配列の中のオブジェクトを指定して検索する場合は、“child.age”のように指定して検索できます。
[Mongoシェル]
1 | > db.col1.find({"child.age":5}) |
オブジェクトの中を検索条件にする場合は”(ダブルクォーテーション)でくくる必要がありますのでご注意下さい。
Pythonで操作
上記の検索をPythonで行うと、次のようになります。
[ソースコード]
1 | from pymongo import MongoClient |
次回はソートと検索件数の制限を行ってみます。