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

MongoDBで集計後に更新するにはどうすればよいですか?


ドキュメントを更新するために、集約パイプラインを使用することはできません。 update()を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.demo376.insertOne(
...    {
...
...       "id" :101,
...
...       "details" : [
...          {
...             Name:"Chris",
...             Age:21,
...             Score:45
...          },
...          {
...             Name:"David",
...             Age:23,
...             Score:67
...          },
...          {
...             Name:"Bob",
...             Age:20,
...             Score:54
...          }
...       ]
...    }
... )
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5a71b92ae06a1609a00b0d")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

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

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

{
   "_id" : ObjectId("5e5a71b92ae06a1609a00b0d"),
   "id" : 101,
   "details" : [
      {
         "Name" : "Chris",
         "Age" : 21,
         "Score" : 45
      },
      {
         "Name" : "David",
         "Age" : 23,
         "Score" : 67
      },
      {
         "Name" : "Bob",
         "Age" : 20,
         "Score" : 54
      }
   ]
}

以下は更新するクエリです-

> db.demo376.update(
...    {"id" :101},
...    {$inc:{"details.$[d].Age":3}},
...    {arrayFilters: [ {$and:[{"d.Age": 21},{"d.Score": {"$gt":40}} ]}] }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

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

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

{
   "_id" : ObjectId("5e5a71b92ae06a1609a00b0d"),
   "id" : 101,
   "details" : [
      {
         "Name" : "Chris",
         "Age" : 24,
         "Score" : 45
      },
      {
         "Name" : "David",
         "Age" : 23,
         "Score" : 67
      },
      {
         "Name" : "Bob",
         "Age" : 20,
         "Score" : 54
      }
   ]
}

  1. MongoDBで条件付き更新を行う方法は?

    MongoDBの条件付き更新にはupdate()を使用します。まず、ドキュメントを使用してコレクションを作成しましょう- > db.demo402.insertOne({id:101,"Name":"Chris"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e61214efac4d418a0178585") } > db.demo402.insertOne({id:10

  2. MongoDBのレコードを更新するにはどうすればよいですか?

    レコードを更新するには、_idに基づいて更新する必要があります。ドキュメントを使用してコレクションを作成しましょう- > db.demo458.insertOne( {_id:101,"Name":"David" } ); { "acknowledged" : true, "insertedId" : 101 } > db.demo458.insertOne( {_id:102,"Name":"Chris" } ); { "acknowledged&qu