$ matchを使用した集計クエリはMongoDBで機能しますか?
はい、MongoDBで動作します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo358.insertOne({"ClientId":101,"ClientName":"Chris","ClientAge":34}); { "acknowledged" : true, "insertedId" : ObjectId("5e5692c0f8647eb59e5620cb") } > db.demo358.insertOne({"ClientId":102,"ClientName":"David","ClientAge":32}); { "acknowledged" : true, "insertedId" : ObjectId("5e5692caf8647eb59e5620cc") } > db.demo358.insertOne({"ClientId":103,"ClientName":"David","ClientAge":35}); { "acknowledged" : true, "insertedId" : ObjectId("5e5692d2f8647eb59e5620cd") } > db.demo358.insertOne({"ClientId":104,"ClientName":"Bob","ClientAge":31}); { "acknowledged" : true, "insertedId" : ObjectId("5e5692ddf8647eb59e5620ce") } > db.demo358.insertOne({"ClientId":105,"ClientName":"Chris","ClientAge":36}); { "acknowledged" : true, "insertedId" : ObjectId("5e5692e7f8647eb59e5620cf") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo358.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e5692c0f8647eb59e5620cb"), "ClientId" : 101, "ClientName" : "Chris", "ClientAge" : 34 } { "_id" : ObjectId("5e5692caf8647eb59e5620cc"), "ClientId" : 102, "ClientName" : "David", "ClientAge" : 32 } { "_id" : ObjectId("5e5692d2f8647eb59e5620cd"), "ClientId" : 103, "ClientName" : "David", "ClientAge" : 35 } { "_id" : ObjectId("5e5692ddf8647eb59e5620ce"), "ClientId" : 104, "ClientName" : "Bob", "ClientAge" : 31 } { "_id" : ObjectId("5e5692e7f8647eb59e5620cf"), "ClientId" : 105, "ClientName" : "Chris", "ClientAge" : 36 }
集計で$matchを操作する方法は次のとおりです-
> db.demo358.aggregate( ... [ { $match : { "ClientName" : "David" }}, ... { "$count": "ClientName" } ... ] ... );
これにより、次の出力が生成されます-
{ "ClientName" : 2 }
-
大文字と小文字を区別しない検索を使用したMongoDBクエリ?
大文字と小文字を区別しない検索の場合は、find()メソッドで正規表現を使用します。以下は構文です- db.demo572.find({"yourFieldName" : { '$regex':/^yourValue$/i}}); 上記の構文を理解するために、ドキュメントを使用してコレクションを作成しましょう- > db.demo572.insertOne({"CountryName":"US"});{ "acknowledged" : true, "in
-
MongoDB集計で複数のフィールドでカウント
複数のフィールドでカウントするには、MongoDBで$facetを使用します。 $ facetは、同じ入力ドキュメントのセットの単一ステージ内で複数の集約パイプラインを処理します。ドキュメントを使用してコレクションを作成しましょう- > db.demo721.insertOne( ... { ... ... "details1": { ... "id":101 ... ...