今回はAND条件やOR条件を指定しての検索を行います。
サンプルデータ
次のようなデータがcol1コレクションに設定されています。
AND条件検索
AND条件で検索する場合は、$andを使います。
$andに検索条件を配列で指定します。検索条件は2つ以上指定できます。
[Mongoシェル]
1 2 3 4 5 6
| > db.col1.find({$and:[ {name:"岡田"}, {age:{$gte:25}} ] }) { "_id" : ObjectId("6120958fdee0a016235653f8"), "name" : "岡田", "age" : 30 }
|
OR条件検索
OR条件で検索する場合は、$orを使います。
$orに検索条件を配列で指定します。検索条件は2つ以上指定できます。
[Mongoシェル]
1 2 3 4 5 6 7
| > db.col1.find({$or:[ {name:"岡田"}, {age:{$gte:25}} ] }) { "_id" : ObjectId("6120958fdee0a016235653f8"), "name" : "岡田", "age" : 30 } { "_id" : ObjectId("6120958fdee0a016235653f9"), "name" : "山岡", "age" : 35 }
|
Pythonで操作
上記の操作をPythonで行うと、次のようになります。
[ソースコード]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from pymongo import MongoClient
client = MongoClient()
db1 = client.db1
for doc in db1.col1.find({'$and': [{'name':'岡田'}, {'age':{'$gte':25}}] }): print(doc)
for doc in db1.col1.find({'$or': [{'name':'岡田'}, {'age':{'$gte':25}}] }): print(doc)
|
次回は空文字/Null/フィールドなし/undefinedに関する検索を行います。