##PythonでMongoのデータを簡易検索
本当は別のことをしていたのですが、どうしても気になり、脱線して作ってみました。
海外ドラマ(NCIS)が好きで良く見ているのですが、
データベースの検索シーンで、「xxx : zzzz」と入力していたような気がします。
ちょうど、JSONやMongoDBをpythonで扱っていたので、あれ?JSONの形に似てる??と思い、MongoDBのデータを対象とした超簡単な検索用部品を作ってみました。
単にpymongoのfilterの引数に正規表現を使っただけのものです。
本当はもっと簡単で美しい書き方があると思います。
findstring.py
import pymongo
# MongoDB接続情報
client = pymongo.MongoClient('localhost', 27017)
db = client[#db名]
co = db[#コレクション名]
# 検索情報の生成 printやinputは動作検証用です。
print("検索のためのkeyとvalueを入力してください")
print("key:valueの形 例 remarks:12時 ")
str_f0=input()
str_f1=str_f0.split(":")[0]
str_f2=str_f0.split(":")[1]
# 検索
data = [d for d in co.find(filter={str_f1:{'$regex':str_f2}})]
for d in data:
print(d[str_f1].splitlines())
エラー処理、大文字・小文字への対応、複数の検索語への対応などの機能はありませんが、たぶんすぐに忘れてしまうので、今後の肥やしとして投稿させていただきます。