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

値を集計に置き換えるMongoDBクエリ?


$literal演算子とともに集約フレームワークを使用します。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.replaceValueDemo.insertOne(
   {
      _id : 100,
      "EmployeeName" :"Chris",
      "EmployeeOtherDetails": {
         "EmployeeDesignation" : "HR",
         "EmployeeAge":27
      }
   }
);
{ "acknowledged" : true, "insertedId" : 100 }
> db.replaceValueDemo.insertOne(
   {
      _id : 101,
      "EmployeeName" :"David",
      "EmployeeOtherDetails": {
         "EmployeeDesignation" : "Tester",
         "EmployeeAge":26
      }
   }
);
{ "acknowledged" : true, "insertedId" : 101 }

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

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

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

{
   "_id" : 100,
   "EmployeeName" : "Chris",
   "EmployeeOtherDetails" : {
      "EmployeeDesignation" : "HR",
      "EmployeeAge" : 27
   }
}
{
   "_id" : 101,
   "EmployeeName" : "David",
   "EmployeeOtherDetails" : {
      "EmployeeDesignation" : "Tester",
      "EmployeeAge" : 26
   }
}

以下は、値を置き換えるクエリです-

> db.replaceValueDemo.aggregate([{
   "$project": {
      "_id": 1,
      "EmployeeOtherDetails": {
         EmployeeAge: 1,
         EmployeeDesignation : { $literal: "Developer" }
      }
   }
}]);

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

{ "_id" : 100, "EmployeeOtherDetails" : { "EmployeeAge" : 27, "EmployeeDesignation" : "Developer" } }
{ "_id" : 101, "EmployeeOtherDetails" : { "EmployeeAge" : 26, "EmployeeDesignation" : "Developer" } }

  1. MongoDBで単一の配列値を文字列に置き換えますか?

    置き換えるには、$ setおよびpositional($)演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo564.insertOne({"StudentName":["Chris","David","Mike","Sam"]});{    "acknowledged" : true, "insertedId" : ObjectId("5e90880a39cfeaaf0b97b5

  2. 特定のフィールド値を持つドキュメントをフェッチするためのMongoDB集約?

    これには、aggregate()を使用します。値が「21」のフィールド「Age」を持つドキュメントをフェッチする必要があるとします。 ドキュメントを使用してコレクションを作成しましょう- > db.demo685.insertOne( ...    { ...       "details": ...       [ ...          { ...