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

ネストされた配列内でMongoDB値をインクリメントします


ネストされた配列内の値をインクリメントするには、位置演算子($)を使用します。まず、ドキュメントを使用してコレクションを作成しましょう

> db.incrementInNestedArrayDemo.insertOne(
... {
...    "StudentId":100,
...    "ProjectDetails":
...    [
...       {"ProjectId":567778888,
...          "TeamSize":4
...       },
...       {
...          "ProjectId":67888999,
...          "TeamSize":2
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a6b7b15e86fd1496b38aa")
}

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

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

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

{
   "_id" : ObjectId("5c9a6b7b15e86fd1496b38aa"),
   "StudentId" : 100,
   "ProjectDetails" : [
      {
         "ProjectId" : 567778888,
         "TeamSize" : 4
      },
      {
         "ProjectId" : 67888999,
         "TeamSize" : 2
      }
   ]
}

以下は、ネストされた配列内の値をインクリメントするためのクエリです

> db.incrementInNestedArrayDemo.update({ "StudentId" : 100, "ProjectDetails.ProjectId":67888999} , {$inc:{"ProjectDetails.$.TeamSize":1}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

フィールドTeamSizeが1ずつ増加するかどうかを確認しましょう。以下はクエリです

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

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

{
   "_id" : ObjectId("5c9a6b7b15e86fd1496b38aa"),
   "StudentId" : 100,
   "ProjectDetails" : [
      {
         "ProjectId" : 567778888,
         "TeamSize" : 4
      },
      {
         "ProjectId" : 67888999,
         "TeamSize" : 3
      }
   ]
}

  1. ネストされた配列をソートするMongoDBクエリ?

    MongoDBでネストされた配列を並べ替えるには、$sortを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo505.insertOne( ... { ...    "details": [ ...    { ...       Name:"Chris", ...       "Score":58 ...    }, { ... ...      

  2. MongoDBコレクションを配列値で並べ替えますか?

    MongoDBコレクションを配列値で並べ替えるには、$ sortとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo577.insertOne( ...    { ... ...       "student": { ...          "details": [ ...             { ...   &