配列から特定の要素で始まるレコードを取得するMongoDBクエリ?
配列インデックスとともにdot(。)表記を使用して、特定の要素で始まるレコードを取得できます。まず、ドキュメントを使用してコレクションを作成しましょう-
>db.arrayStartsWithElementDemo.insertOne({"PlayerName":"Chris","PlayerScore":[780,9000,456,789,987]}); { "acknowledged" : true, "insertedId" : ObjectId("5cd29fed345990cee87fd889") } >db.arrayStartsWithElementDemo.insertOne({"PlayerName":"Robert","PlayerScore":[890,670,890,54646,42424]}); { "acknowledged" : true, "insertedId" : ObjectId("5cd2a00c345990cee87fd88a") } >db.arrayStartsWithElementDemo.insertOne({"PlayerName":"David","PlayerScore":[909090,896555,3344433,78900]}); { "acknowledged" : true, "insertedId" : ObjectId("5cd2a025345990cee87fd88b") }
以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-
> db.arrayStartsWithElementDemo.find().pretty();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5cd29fed345990cee87fd889"), "PlayerName" : "Chris", "PlayerScore" : [ 780, 9000, 456, 789, 987 ] } { "_id" : ObjectId("5cd2a00c345990cee87fd88a"), "PlayerName" : "Robert", "PlayerScore" : [ 890, 670, 890, 54646, 42424 ] } { "_id" : ObjectId("5cd2a025345990cee87fd88b"), "PlayerName" : "David", "PlayerScore" : [ 909090, 896555, 3344433, 78900 ] }
以下は、特定の要素890で始まり、次に670-
で始まる配列を取得するためのクエリです。> db.arrayStartsWithElementDemo.find({"PlayerScore.0" : 890, "PlayerScore.1" : 670}).pretty();
これにより、次の出力が生成されます。ここで
{ "_id" : ObjectId("5cd2a00c345990cee87fd88a"), "PlayerName" : "Robert", "PlayerScore" : [ 890, 670, 890, 54646, 42424 ] }
-
配列要素の集計で平均を取得するMongoDBクエリ?
配列要素の平均を取得するには、$avgを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo584.insertOne({"Marks":[75,50,85,60,80]});{ "acknowledged" : true, "insertedId" : ObjectId("5e91d827fd2d90c177b5bcc2") } find()メソッドを使用してコレクションからすべてのドキュメントを表示する- > db
-
MongoDBドキュメントの特定のフィールドから配列要素の数を取得しますか?
特定のフィールドから配列要素をカウントするには、MongoDBで$sizeを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5eab094d43417811278f588a") } >