1. koshilife

    Posted

    koshilife
Changes in title
+mongo-express Advancedなクエリ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,38 @@
+[@koshi_life](https://twitter.com/koshi_life) です。
+
+[mongo-express](https://github.com/mongo-express/mongo-express) の Advanced 検索窓 使い方の備忘録です。mongo-expressでは、RDBMSでいうテーブルにあたるコレクションに対してWeb画面でクエリを投げてデータの中身を確認することができます。
+
+## Simple検索窓
+
+<img width="600" alt="simple.png" src="https://qiita-image-store.s3.amazonaws.com/0/51734/5c58fa77-5a7c-3cf9-d13a-523b88caa4e6.png">
+
+1fieldに対する値検索や正規表現での検索は、「Simple」という検索窓で直感的にデータを確かめられてとても便利です。
+
+## Advanced 検索窓
+
+<img width="600" alt="advanced.png" src="https://qiita-image-store.s3.amazonaws.com/0/51734/2bba8289-4660-65a1-bd52-a1a5807d9984.png">
+
+複数条件での検索したい時は「Simple」検索窓ではできないため、右側のタブの「Advanced」の検索機能を利用します。ただ、このテキストエリアの `Query`(クエリ), `Projection`(射影) にどんな形式で指定すればよいかわかりませんでした。[^1]
+以下 [README.md](https://github.com/mongo-express/mongo-express/blob/master/README.md#search) より引用。
+
+>Advanced search passes the find and projection fields/objects straight into MongoDB db.collection.find(query, projection). The find object is where your query happens, while the projection object determines which columns are returned.
+>
+>See [MongoDB db.collection.find()](https://docs.mongodb.com/manual/reference/method/db.collection.find/) documentation for examples and exact usage.
+
+要は、 `db.collection.find()` の形式で書けるぜってことなので書いてみる。
+
+[^1]: この [Issue](https://github.com/mongo-express/mongo-express/issues/200) でREADME.md に Advanced search の使い方が記載されたとのこと。確かに見ればわかるがPlaceholderに記載あると嬉しいな。
+
+## 例
+
+|No|Query|Projection|こんな内容|
+|:--|:--|:--|:--|
+|1|```{"status": 1, "access_token": {$ne: ""}}```|```{_id: 0, "email":1}```|クエリ:`status`=="1" AND `access_token` NOT 空 、表示列は `email` だけ。|
+|2|```{"created_at": { $gte: "2019/03/01 0:00:00", $lt: "2019/04/01 0:00:00" } }```|```(空)```|3月中に作成されたレコード一覧。列は全て。|
+
+
+
+### 参考
+
+- [3分で導入できる MongoDB データ可視化ツール mongo-express](https://qiita.com/koshilife/items/dcc2b17e4c880d65ba78)
+- [mongo-express で複数DBを見る方法](https://qiita.com/koshilife/items/2073629778d853544f08)