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

コレクション内のドキュメントの各フィールドを数式で更新するMongoDBクエリ?


コレクション内のドキュメントの各フィールドを数式で更新するには、MongoDB update()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo749.insertOne({"details":[{"id":1,a:10},{"id":2,a:5},{"id":3,a:20}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eae6fb0a930c785c834e565")
}

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

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

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

{
   "_id" : ObjectId("5eae6fb0a930c785c834e565"),
   "details" : [
      {
         "id" : 1,
         "a" : 10
      },
      {
         "id" : 2,
         "a" : 5
      },
      {
         "id" : 3,
         "a" : 20
      }
   ]
}

以下は、コレクション内のドキュメントの各フィールドを式-

で更新するためのクエリです。
> db.demo749.update(
...    {
...
...    },
...    {
...       $mul: { "details.$[].a": 2/5}
...    },
...    { multi:true}
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

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

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

{
   "_id" : ObjectId("5eae6fb0a930c785c834e565"),
   "details" : [
      {
         "id" : 1,
         "a" : 4
      },
      {
         "id" : 2,
         "a" : 2
      },
      {
         "id" : 3,
         "a" : 8
      }
   ]
}

  1. 配列フィールドを含むドキュメントに一致するMongoDBクエリ

    配列フィールドを含むドキュメントを照合するには、$elemMatch演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo592.insertOne( ...    { ...       "id":101, ...       "details" : [ ...          { "Name" : "Chris", "Value

  2. MongoDBで1つのクエリで多くのドキュメントを更新するにはどうすればよいですか?

    1つのクエリで多くのドキュメントを更新するには、MongoDBでbulkWrite()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eb0309f5637cd592b2a4aee") } > db.demo760.insert