制限を使用しながら、MongoDBでドキュメントの総数を取得しますか?
これには$facet演算子を使用できます。概念を理解するために、ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-
> db.totalDocumentDemo.insertOne({"InstructorId":100,"InstructorName":"Larry","InstructorFav ouriteSubject":["Java","MongoDB","Python"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c76e6701e9c5dd6f1f78274") } > db.totalDocumentDemo.insertOne({"InstructorId":200,"InstructorName":"Sam","InstructorFav ouriteSubject":["SQL Server","C#","Javascript"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c76e69c1e9c5dd6f1f78275") }
find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-
> db.totalDocumentDemo.find().pretty();
出力
{ "_id" : ObjectId("5c76e6701e9c5dd6f1f78274"), "InstructorId" : 100, "InstructorName" : "Larry", "InstructorFavouriteSubject" : [ "Java", "MongoDB", "Python" ] } { "_id" : ObjectId("5c76e69c1e9c5dd6f1f78275"), "InstructorId" : 200, "InstructorName" : "Sam", "InstructorFavouriteSubject" : [ "SQL Server", "C#", "Javascript" ] }
コレクションからドキュメントの総数を取得するためのクエリは次のとおりです-
> db.totalDocumentDemo.aggregate([ ... { ... $facet:{ ... Alldata:[{$match:{}}], ... totalDocument: [{ $count: 'totalDocument' }] ... } ... } ... ]).pretty();
以下は、ドキュメントの数を表示する出力です-
出力
{ "Alldata" : [ { "_id" : ObjectId("5c76e6701e9c5dd6f1f78274"), "InstructorId" : 100, "InstructorName" : "Larry", "InstructorFavouriteSubject" : [ "Java", "MongoDB", "Python" ] }, { "_id" : ObjectId("5c76e69c1e9c5dd6f1f78275"), "InstructorId" : 200, "InstructorName" : "Sam", "InstructorFavouriteSubject" : [ "SQL Server", "C#", "Javascript" ] } ], "totalDocument" : [ { "totalDocument" : 2 } ] }
-
MongoDBドキュメントの特定のフィールドから配列要素の数を取得しますか?
特定のフィールドから配列要素をカウントするには、MongoDBで$sizeを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5eab094d43417811278f588a") } >
-
MySQLでLIMITを使用しているときに行の総数を取得しますか?
LIMITを使用するときに行の総数を取得するには、次の構文を使用します- select SQL_CALC_FOUND_ROWS * FROM yourTableName LIMIT 0,yourLastValue; 上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです- mysql> create table RowsUsingLimit -> ( -> Id int NOT NULL, -> Name varchar(10) -> ); Query OK, 0 rows affected