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

2つの配列を圧縮し、MongoDBを使用してオブジェクトの新しい配列を再形成された形式で作成します


このために、$zipと一緒にaggregateを使用します。 zipは配列を転置するために使用されます。ドキュメントを使用してコレクションを作成しましょう-

> db.demo339.insertOne({Id:101,Score1:["98","56"],Score2:[67,89]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e529ee5f8647eb59e5620a2")
}

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

> db.demo339.find();

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

{ "_id" : ObjectId("5e529ee5f8647eb59e5620a2"), "Id" : 101, "Score1" : [ "98", "56" ], "Score2" : [ 67, 89 ] }

以下は、2つの配列を$ zipで圧縮し、オブジェクトの新しい配列を作成するためのクエリです-

> db.demo339.aggregate([
...    {
...       "$project": {
...          "AllArrayObject": {
...             "$map": {
...                "input": {
...                   "$objectToArray": {
...                      "$arrayToObject": {
...                         "$zip": {
...                            "inputs": [
...                               "$Score1",
...                               "$Score2"
...                            ]
...                         }
...                      }
...                   }
...                },
.
...                "as": "el",
...                "in": {
...                   "Score1": "$$el.k",
...                   "Score2": "$$el.v"
...                }
...             }
...          }
...       }
...    }
... ])

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

{ "_id" : ObjectId("5e529ee5f8647eb59e5620a2"), "AllArrayObject" : [ { "Score1" : "98", "Score2" : 67 }, { "Score1" : "56", "Score2" : 89 } ] }

  1. 新しいユーザーを作成し、MongoDBで役割を設定します

    これには、adminのようなすべての権限を与えるuserAdminAnyDatabaseを使用します。以下は構文です- use admin db.createUser(    {       user: "yourUserName",       pwd: "yourPassword",       roles: [ { role: "yourRoleName", db: "yourDatabaseName"

  2. MongoDBは、配列を持つ1つのレコードを新しいコレクションの複数のレコードに変換しますか?

    このために、aggregate()および$unwindとともに$outを使用できます。ドキュメントを使用してコレクションを作成しましょう- > db.demo757.insertOne( ...    { ...       "id": 101, ...       "Name": ["John", "Bob", "Chris"] ...    } ... ); {