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

異なる要素をMongoDBの別の配列に移動しますか?


forEachを使用してさまざまな要素を確認し、いくつかの条件とともにsave()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo646.insertOne(
...    {
...
...       "Information": [
...          { id: 100, Name:"Chris" },
...          { id: 100, Name:"Chris" },
...          { id: 101, Name:"David" },
...          { id: 100, Name:"Chris" }
...       ],
...       "different": []
...    }
... )
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c82ec6c954c74be91e6ed")
}

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

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

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

{
   "_id" : ObjectId("5e9c82ec6c954c74be91e6ed"),
   "Information" : [
      {
         "id" : 100,
         "Name" : "Chris"
      },
      {
         "id" : 100,
         "Name" : "Chris"
      },
      {
         "id" : 101,
         "Name" : "David"
      },
      {
         "id" : 100,
         "Name" : "Chris"
      }
   ],
   "different" : [ ]
}

以下は、要素を別の配列に移動するためのクエリです-

> db.demo646.find({}).forEach(function(d) {
...    d.different = d.Information.filter(function(v) { return v.id == 101 })
...    d.Information = d.Information.filter(function(v) { return v.id != 101 })
...    db.demo646.save(d)
...    }
... )

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

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

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

{
   "_id" : ObjectId("5e9c82ec6c954c74be91e6ed"),
   "Information" : [
      {
         "id" : 100,
         "Name" : "Chris"
      },
      {
         "id" : 100,
         "Name" : "Chris"
      },
      {
         "id" : 100,
         "Name" : "Chris"
      }
   ],
   "different" : [
      {
         "id" : 101,
         "Name" : "David"
      }
   ]
}

  1. 異なるドキュメント内の同様のIDを持つ要素のMongoDB集約?

    このようなドキュメントのグループ化には、MongoDBaggregate()で$groupを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo602.insertOne({id:1,Name:"Chris"});{    "acknowledged" : true, "insertedId" : ObjectId("5e960080ed011c280a0905c9") } > db.demo602.insertOne({id:2,Name:"

  2. C++で別の配列を使用して要素を最大化する

    問題の説明 サイズnの2つの配列がある場合、2番目の配列の要素を使用して最初の配列を最大化し、形成された新しい配列に、2番目の配列の優先順位を与える両方の配列のn個の最大で一意の要素が含まれるようにします。つまり、2番目の配列のすべての要素が最初の配列の前に表示されます。配列。要素の出現順序は、出力でも入力と同じに保つ必要があります arr1 [] ={12、15、10}およびarr2 [] ={16、17、5}の場合、順序を維持することにより、{16、17、15}が両方の配列からの最大要素になります。 アルゴリズム 1. Create temporary array of size 2