MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

$スライスを集約して、MongoDBのネストされた配列から正確な位置に要素を取得しますか?


これには集約フレームワークを使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

>db.exactPositionDemo.insertOne({"StudentName":"John","StudentScores":[78,98,56,45,89]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd29a1c345990cee87fd883")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.exactPositionDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd29a1c345990cee87fd883"),
   "StudentName" : "John",
   "StudentScores" : [
      78,
      98,
      56,
      45,
      89
   ]
}

ケース1 − 0,1の正確な位置にある要素を取得するために、$sliceを集約するためのクエリ-

> db.exactPositionDemo.aggregate([ { "$project": { "StudentScores": { "$slice": ["$StudentScores",0,1] } }} ]);

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5cd29a1c345990cee87fd883"), "StudentScores" : [ 78 ] }

ケース2 − $スライスを集約して、1,1の正確な位置にある要素を取得するためのクエリ-

> db.exactPositionDemo.aggregate([ { "$project": { "StudentScores": { "$slice": ["$StudentScores",1,1] } }} ]);

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5cd29a1c345990cee87fd883"), "StudentScores" : [ 98 ] }

  1. MongoDBドキュメントから最初の配列要素を取得するための配列の投影

    配列の最初の要素が必要な場合は、$gteとともに$sliceを使用できます。ドキュメントを使用してコレクションを作成しましょう- > db.demo640.insertOne({Name:"John","Scores":[80,90,75]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e9c2eb86c954c74be91e6e0") } > db.demo640.in

  2. MongoDB Aggregateを使用して、ドキュメントと配列要素の平均を取得しますか?

    このために、$groupおよびaggregate()とともに$avgを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo598.insertOne( ...    { ...       Information:'Student', ...       id:100, ...       details:[ ...          {Name:'Chris',Ma