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

大規模なMongoDBコレクションの各ドキュメントに新しいプロパティを追加しますか?


大規模なコレクションには、forEach()とともにupdateコマンドを使用できます。まず、ドキュメントを使用してコレクションを作成しましょう

>db.addingNewPropertyDemo.insertOne({"StudentName":"John","StudentAge":23,"CountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca1e61866324ffac2a7dc56")
}
>db.addingNewPropertyDemo.insertOne({"StudentName":"David","StudentAge":21,"CountryName":"AUS"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca1e62366324ffac2a7dc57")
}
>db.addingNewPropertyDemo.insertOne({"StudentName":"Bob","StudentAge":21,"CountryName":"UK"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ca1e62d66324ffac2a7dc58")
}

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

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

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

{
   "_id" : ObjectId("5ca1e61866324ffac2a7dc56"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "CountryName" : "US"
}
{
   "_id" : ObjectId("5ca1e62366324ffac2a7dc57"),
   "StudentName" : "David",
   "StudentAge" : 21,
   "CountryName" : "AUS"
}
{
   "_id" : ObjectId("5ca1e62d66324ffac2a7dc58"),
   "StudentName" : "Bob",
   "StudentAge" : 21,
   "CountryName" : "UK"
}

以下は、大規模なコレクション内の各ドキュメントに新しいプロパティを追加するためのクエリです

> db.addingNewPropertyDemo.find().forEach(function(data){ db.addingNewPropertyDemo.update({_id: data._id}, {$set: { StudentNameInUpperCase: data.StudentName.toUpperCase() }}) });

新しいプロパティが追加されているかどうかを確認しましょう

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

以下は、新しいプロパティも表示する出力です

{
   "_id" : ObjectId("5ca1e61866324ffac2a7dc56"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "CountryName" : "US",
   "StudentNameInUpperCase" : "JOHN"
}
{
   "_id" : ObjectId("5ca1e62366324ffac2a7dc57"),
   "StudentName" : "David",
   "StudentAge" : 21,
   "CountryName" : "AUS",
   "StudentNameInUpperCase" : "DAVID"
}
{
   "_id" : ObjectId("5ca1e62d66324ffac2a7dc58"),
   "StudentName" : "Bob",
   "StudentAge" : 21,
   "CountryName" : "UK",
   "StudentNameInUpperCase" : "BOB"
}

上記のサンプル出力を見ると、StudentNameInUpperCaseプロパティが追加されています。


  1. MongoDBコレクション内のすべてのドキュメントに新しいフィールドを追加する方法

    新しいフィールドを追加するには、MongoDBで$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo712.insertOne({"Name":"John"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea85f675d33e20ed1097b82") } > db.demo712.insertOne({"

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

    コレクション内のドキュメントの各フィールドを数式で更新するには、MongoDB update()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo749.insertOne({"details":[{"id":1,a:10},{"id":2,a:5},{"id":3,a:20}]}); {    "acknowledged" : true,    "insertedId" : ObjectId(