MongoDB \ Driverphp最初のコレクションでフィルターを使用して内部結合を作成する方法

オマールベラミ|

2つのコレクションを同時に結合する必要があります。最初のコレクションのフィルターを実行する必要があります。例:

... // code inside my classe 
$this->MDBManager = new MongoDB\Driver\Manager("mongodb:// xxxxx: xxxxx @" . $this->host);
$filter = array ("date", array('$gte' =>str_replace("-","/", "2019-10-5") , '$lte' => str_replace("-","/",  2019-10-15)))
$this->MDBQuery = new MongoDB\Driver\Query($filters, $options);
$this->results = $this->MDBManager->executeQuery("mydb.colllection1", $this->MDBQuery);

したがって、これは私の最初のコレクションであり、コレクション1のproductEnsembleId属性の同じ値と一致するようにsocondeコレクションIDを結合する必要があります。

参加リクエストは、1つのリクエストにのみ含める必要があります。

あなたの助けのためにあなたをとても感謝します。

詳細については :

コレクションの例1:

{
  "_id": "5db8683c877c34001559f192",
  "id": "1BuVJCLGIUIcDXfBQVlpzccAP6r2JRQPGL4wHTEfPildnnWU5gUh8oymfJM2a6wOW117sTbzWJGKLNaRCZ7uMNHA2CnBjT4PeM44B9QaNYMZfg1BiiBa5JYBRLxMLxFTOY88PDFm4U4yDn9iPnljRnfeqpu9ZBl7fGS4tnnlmuz2ntlXb6cFFrFmQIo8EpDOwr5LLyaSrI67mLUya94WMUnDOojXpf4UAjcmMTayM4x9fmla_00001572366396",
  "userId": "DEXpMPBstW37YkixF5e6yPeVpkElumYN1nyw0rjjcPy6vf8mdUHXzIg8KMvy0KegxThD5LgKS6WnuhvPwbLqa3aoyhVgIOhk0huqvxmQ0ctBFMVZZyaPkADdGmWUFM10OhTo919uQOb4QgZLZjtDOnTkcmLUfB6uLFdfNmaXLRNaRs6w4GI9ZDwnuVWAgQ3uajWnUTigq1gXbKGcI4G4Es8cBKZsVQhxsKzOqLFGXDONbQEX_00000000000000",
  "productEnsembleId": "8FMOBUO8TArv0PcyQ2GSDhGPWRxMjMSLtCOcRV21G04yoCKq1i3POwPqEWwj6wJoeydY28thZMWmO4uP7Yha2xNMV1m0zmjfqtZgsKmTA1Qghku3I0rekTJ51cH2XlXan4zUV5hjjEolRWjREOR7N9DD9sCvoQF2kr3EhI553RYIdwgivRtYJYH4g6oqVv2nrob3KbrLwd95MbNnzwmCqGNM20q0zgF8HUJjCxIfphNyVcwO_00001571329166",
  "date": "2019/11/01",
  "status": "En cours"
}

例2:

   {
  "_id": "5da8948e877c34001529a7f2",
  "id": "8FMOBUO8TArv0PcyQ2GSDhGPWRxMjMSLtCOcRV21G04yoCKq1i3POwPqEWwj6wJoeydY28thZMWmO4uP7Yha2xNMV1m0zmjfqtZgsKmTA1Qghku3I0rekTJ51cH2XlXan4zUV5hjjEolRWjREOR7N9DD9sCvoQF2kr3EhI553RYIdwgivRtYJYH4g6oqVv2nrob3KbrLwd95MbNnzwmCqGNM20q0zgF8HUJjCxIfphNyVcwO_00001571329166",
  "name": "ensemble 2",
  "image": "fjO9sb3FUmDFhgWn49v1Io5Oa5sdFyL7KZRVzsH0n06n7GtNqIPdFSfDT67BSIvfYSmdTh7IoYyize3SDX169cas4MWMwVWLsF989ZWy76ANsYS4tkLS5OYR1i2TrqXjP40WDCcWvr6OkQapgzuk4hAISx7Mwf6Wp2Z3krzjn72PrTXUDmG7nDrp7VKDrsonCVqkmGs7lAwocdEeghWs7NUVkMdIGMjWDVo8u3wlClzs2e5X_00001571329177",
  "produits": null
}
バリーピッカー

したがって、最初のコレクションの1つのドキュメントの結合結果が必要であると仮定して、ここにmongoシェルクエリを示します。

db.col1.aggregate([
  { $match: { "_id": "5db8683c877c34001559f192" } },
  { $lookup: {
      from: "col2",
      localField: "productEnsembleId",
      foreignField: "id",
      as: "col2_data"  
    }
  }
])

結果は次のようになります...

{
    "_id" : "5db8683c877c34001559f192",
    "id" : "1BuVJCLGIUIcDXfBQVlpzccAP6r2JRQPGL4wHTEfPildnnWU5gUh8oymfJM2a6wOW117sTbzWJGKLNaRCZ7uMNHA2CnBjT4PeM44B9QaNYMZfg1BiiBa5JYBRLxMLxFTOY88PDFm4U4yDn9iPnljRnfeqpu9ZBl7fGS4tnnlmuz2ntlXb6cFFrFmQIo8EpDOwr5LLyaSrI67mLUya94WMUnDOojXpf4UAjcmMTayM4x9fmla_00001572366396",
    "userId" : "DEXpMPBstW37YkixF5e6yPeVpkElumYN1nyw0rjjcPy6vf8mdUHXzIg8KMvy0KegxThD5LgKS6WnuhvPwbLqa3aoyhVgIOhk0huqvxmQ0ctBFMVZZyaPkADdGmWUFM10OhTo919uQOb4QgZLZjtDOnTkcmLUfB6uLFdfNmaXLRNaRs6w4GI9ZDwnuVWAgQ3uajWnUTigq1gXbKGcI4G4Es8cBKZsVQhxsKzOqLFGXDONbQEX_00000000000000",
    "productEnsembleId" : "8FMOBUO8TArv0PcyQ2GSDhGPWRxMjMSLtCOcRV21G04yoCKq1i3POwPqEWwj6wJoeydY28thZMWmO4uP7Yha2xNMV1m0zmjfqtZgsKmTA1Qghku3I0rekTJ51cH2XlXan4zUV5hjjEolRWjREOR7N9DD9sCvoQF2kr3EhI553RYIdwgivRtYJYH4g6oqVv2nrob3KbrLwd95MbNnzwmCqGNM20q0zgF8HUJjCxIfphNyVcwO_00001571329166",
    "date" : "2019/11/01",
    "status" : "En cours",
    "col2_data" : [
        {
            "_id" : "5da8948e877c34001529a7f2",
            "id" : "8FMOBUO8TArv0PcyQ2GSDhGPWRxMjMSLtCOcRV21G04yoCKq1i3POwPqEWwj6wJoeydY28thZMWmO4uP7Yha2xNMV1m0zmjfqtZgsKmTA1Qghku3I0rekTJ51cH2XlXan4zUV5hjjEolRWjREOR7N9DD9sCvoQF2kr3EhI553RYIdwgivRtYJYH4g6oqVv2nrob3KbrLwd95MbNnzwmCqGNM20q0zgF8HUJjCxIfphNyVcwO_00001571329166",
            "name" : "ensemble 2",
            "image" : "fjO9sb3FUmDFhgWn49v1Io5Oa5sdFyL7KZRVzsH0n06n7GtNqIPdFSfDT67BSIvfYSmdTh7IoYyize3SDX169cas4MWMwVWLsF989ZWy76ANsYS4tkLS5OYR1i2TrqXjP40WDCcWvr6OkQapgzuk4hAISx7Mwf6Wp2Z3krzjn72PrTXUDmG7nDrp7VKDrsonCVqkmGs7lAwocdEeghWs7NUVkMdIGMjWDVo8u3wlClzs2e5X_00001571329177",
            "produits" : null
        }
    ]
}

これは、コレクション1とコレクション2の組み合わせです。コレクション1のすべてのレコードが必要な場合は、$ match基準を削除するだけです。

編集:上記と同じクエリのPHPバージョンを含めます...

このクエリをPHPページで使用するには、以下を参照してください。この例では、最新のMongoDBドライバーと、PHPComposerの使用を含む戦略を使用することを前提としています...

<?php

require 'vendor/autoload.php';

$client = new MongoDB\Client('mongodb://johndoe:mypassword@localhost:27017');
$collection = $client->ensemble->col1;

$cursor = $collection->aggregate(
  array(
    array( '$match' => array( '_id' => '5db8683c877c34001559f192' ) ),
    array(
      '$lookup' => array(
      'from' => 'col2',
      'localField' => 'productEnsembleId',
      'foreignField' => 'id',
      'as' => 'col2_data'
      )   
    )   
  )
);

foreach($cursor as $document) {
  print_r($document);
}

?>

PHPの結果:

MongoDB\Model\BSONDocument Object
(
    [storage:ArrayObject:private] => Array
        (
            [_id] => 5db8683c877c34001559f192
            [id] => 1BuVJCLGIUIcDXfBQVlpzccAP6r2JRQPGL4wHTEfPildnnWU5gUh8oymfJM2a6wOW117sTbzWJGKLNaRCZ7uMNHA2CnBjT4PeM44B9QaNYMZfg1BiiBa5JYBRLxMLxFTOY88PDFm4U4yDn9iPnljRnfeqpu9ZBl7fGS4tnnlmuz2ntlXb6cFFrFmQIo8EpDOwr5LLyaSrI67mLUya94WMUnDOojXpf4UAjcmMTayM4x9fmla_00001572366396
            [userId] => DEXpMPBstW37YkixF5e6yPeVpkElumYN1nyw0rjjcPy6vf8mdUHXzIg8KMvy0KegxThD5LgKS6WnuhvPwbLqa3aoyhVgIOhk0huqvxmQ0ctBFMVZZyaPkADdGmWUFM10OhTo919uQOb4QgZLZjtDOnTkcmLUfB6uLFdfNmaXLRNaRs6w4GI9ZDwnuVWAgQ3uajWnUTigq1gXbKGcI4G4Es8cBKZsVQhxsKzOqLFGXDONbQEX_00000000000000
            [productEnsembleId] => 8FMOBUO8TArv0PcyQ2GSDhGPWRxMjMSLtCOcRV21G04yoCKq1i3POwPqEWwj6wJoeydY28thZMWmO4uP7Yha2xNMV1m0zmjfqtZgsKmTA1Qghku3I0rekTJ51cH2XlXan4zUV5hjjEolRWjREOR7N9DD9sCvoQF2kr3EhI553RYIdwgivRtYJYH4g6oqVv2nrob3KbrLwd95MbNnzwmCqGNM20q0zgF8HUJjCxIfphNyVcwO_00001571329166
            [date] => 2019/11/01
            [status] => En cours
            [col2_data] => MongoDB\Model\BSONArray Object
                (
                    [storage:ArrayObject:private] => Array
                        (
                            [0] => MongoDB\Model\BSONDocument Object
                                (
                                    [storage:ArrayObject:private] => Array
                                        (
                                            [_id] => 5da8948e877c34001529a7f2
                                            [id] => 8FMOBUO8TArv0PcyQ2GSDhGPWRxMjMSLtCOcRV21G04yoCKq1i3POwPqEWwj6wJoeydY28thZMWmO4uP7Yha2xNMV1m0zmjfqtZgsKmTA1Qghku3I0rekTJ51cH2XlXan4zUV5hjjEolRWjREOR7N9DD9sCvoQF2kr3EhI553RYIdwgivRtYJYH4g6oqVv2nrob3KbrLwd95MbNnzwmCqGNM20q0zgF8HUJjCxIfphNyVcwO_00001571329166
                                            [name] => ensemble 2
                                            [image] => fjO9sb3FUmDFhgWn49v1Io5Oa5sdFyL7KZRVzsH0n06n7GtNqIPdFSfDT67BSIvfYSmdTh7IoYyize3SDX169cas4MWMwVWLsF989ZWy76ANsYS4tkLS5OYR1i2TrqXjP40WDCcWvr6OkQapgzuk4hAISx7Mwf6Wp2Z3krzjn72PrTXUDmG7nDrp7VKDrsonCVqkmGs7lAwocdEeghWs7NUVkMdIGMjWDVo8u3wlClzs2e5X_00001571329177
                                            [produits] => 
                                        )

                                )

                        )

                )

        )

)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MongoDBコレクションをループしてC#で結合する

分類Dev

MongoDb C#ドライバーを使用してIDでコレクションを結合する方法

分類Dev

マングースを使用してmongodbコレクションドキュメントからフィールドの合計を計算する方法

分類Dev

mongodbを使用して2つのコレクション結果と別のコレクションを結合する方法

分類Dev

Linqを使用して文字列を使用したコレクションでMongoDBコレクションをstring []と結合する方法

分類Dev

ClojureMapを使用して複数のMongoDBコレクションからデータをフェッチする方法

分類Dev

ノードjsを使用してmongodbのコレクションを結合する

分類Dev

配列を使用してMongoShellの$ in演算子を使用してMongoDBコレクションを結合する

分類Dev

mongodbの集計を使用して、特定の列の最大値を持つコレクションからレコードをフィルター処理します

分類Dev

MongoDBで$ lookupを適用する方法、2番目のコレクションのレコードが削除された場合でも、最初のコレクションのすべてのレコードを応答します

分類Dev

MongoDb-Javaを使用してコレクション内の複数のフィールドを並べ替えて検索する方法

分類Dev

Spring Dataをスケーラブルに使用して、MongoDBのコレクションフィールドに要素を挿入する方法

分類Dev

mongodbコレクションの子配列データをフィルタリングする方法は?

分類Dev

MongoDB:MongoDBシェルでコレクションのすべてのレコードを削除する方法?

分類Dev

ノードjsを使用してMongoDBの2つのコレクションを「結合」します

分類Dev

NodeJSドライバーを使用してフィールドの値のORを使用してMongoDBコレクションをフィルター処理するにはどうすればよいですか?

分類Dev

MongoDBコレクションのすべてのサブドキュメントに条件付きで新しいフィールドを設定する方法

分類Dev

mongodb集計クエリを使用して別のコレクションから結合された複数のフィールドを個別にカウントする必要があります

分類Dev

_idなしでmongodbコレクションを作成する方法

分類Dev

MongoDB-集約の$ matchで異なるコレクションのフィールドを比較する方法は?

分類Dev

Mongooseを使用して、可能なフィールドの数が不明なMongoDBコレクションを更新する方法

分類Dev

日付の作成フィールドを使用して、MongoDBドキュメントのコレクションを遡及的に更新します

分類Dev

DB内のコレクションで特定のファイル値が見つかった場合に、古いドキュメントをコピーしてmongodbで新しいドキュメントを作成する方法

分類Dev

MongoDB-コレクションのすべての「_id」フィールドを反復で更新します

分類Dev

MongoEngineを使用してMongoDBから最新のデータベースコレクションを取得する方法

分類Dev

Mongooseを使用してmongoDBの3つのコレクションにデータを入力する方法

分類Dev

乗算バリエーションでMongoDBコレクションをフィルタリングする

分類Dev

既存のmongodbをMONGO_URLとして使用する場合、Meteorサーバーコレクションからクライアントコレクションにデータを確実にプルするにはどうすればよいですか?

分類Dev

javaを使用してmongodbのコレクションのすべてのフィールド(文字列)にインデックスを付ける

Related 関連記事

  1. 1

    MongoDBコレクションをループしてC#で結合する

  2. 2

    MongoDb C#ドライバーを使用してIDでコレクションを結合する方法

  3. 3

    マングースを使用してmongodbコレクションドキュメントからフィールドの合計を計算する方法

  4. 4

    mongodbを使用して2つのコレクション結果と別のコレクションを結合する方法

  5. 5

    Linqを使用して文字列を使用したコレクションでMongoDBコレクションをstring []と結合する方法

  6. 6

    ClojureMapを使用して複数のMongoDBコレクションからデータをフェッチする方法

  7. 7

    ノードjsを使用してmongodbのコレクションを結合する

  8. 8

    配列を使用してMongoShellの$ in演算子を使用してMongoDBコレクションを結合する

  9. 9

    mongodbの集計を使用して、特定の列の最大値を持つコレクションからレコードをフィルター処理します

  10. 10

    MongoDBで$ lookupを適用する方法、2番目のコレクションのレコードが削除された場合でも、最初のコレクションのすべてのレコードを応答します

  11. 11

    MongoDb-Javaを使用してコレクション内の複数のフィールドを並べ替えて検索する方法

  12. 12

    Spring Dataをスケーラブルに使用して、MongoDBのコレクションフィールドに要素を挿入する方法

  13. 13

    mongodbコレクションの子配列データをフィルタリングする方法は?

  14. 14

    MongoDB:MongoDBシェルでコレクションのすべてのレコードを削除する方法?

  15. 15

    ノードjsを使用してMongoDBの2つのコレクションを「結合」します

  16. 16

    NodeJSドライバーを使用してフィールドの値のORを使用してMongoDBコレクションをフィルター処理するにはどうすればよいですか?

  17. 17

    MongoDBコレクションのすべてのサブドキュメントに条件付きで新しいフィールドを設定する方法

  18. 18

    mongodb集計クエリを使用して別のコレクションから結合された複数のフィールドを個別にカウントする必要があります

  19. 19

    _idなしでmongodbコレクションを作成する方法

  20. 20

    MongoDB-集約の$ matchで異なるコレクションのフィールドを比較する方法は?

  21. 21

    Mongooseを使用して、可能なフィールドの数が不明なMongoDBコレクションを更新する方法

  22. 22

    日付の作成フィールドを使用して、MongoDBドキュメントのコレクションを遡及的に更新します

  23. 23

    DB内のコレクションで特定のファイル値が見つかった場合に、古いドキュメントをコピーしてmongodbで新しいドキュメントを作成する方法

  24. 24

    MongoDB-コレクションのすべての「_id」フィールドを反復で更新します

  25. 25

    MongoEngineを使用してMongoDBから最新のデータベースコレクションを取得する方法

  26. 26

    Mongooseを使用してmongoDBの3つのコレクションにデータを入力する方法

  27. 27

    乗算バリエーションでMongoDBコレクションをフィルタリングする

  28. 28

    既存のmongodbをMONGO_URLとして使用する場合、Meteorサーバーコレクションからクライアントコレクションにデータを確実にプルするにはどうすればよいですか?

  29. 29

    javaを使用してmongodbのコレクションのすべてのフィールド(文字列)にインデックスを付ける

ホットタグ

アーカイブ