Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP在查询生成器中加入MongoDB集合_Php_Mongodb_Query Builder - Fatal编程技术网

如何使用PHP在查询生成器中加入MongoDB集合

如何使用PHP在查询生成器中加入MongoDB集合,php,mongodb,query-builder,Php,Mongodb,Query Builder,如何使用PHP在查询生成器中执行MongoDB连接等效。 是否有连接集合的方法。 我认为如果我们将集合col1中的“\u id”的值放到集合col2中的另一个“model\u id”中 “col1集合是普通文档,col2集合是嵌入文档” 示例集合:- col1: { "_id" : 1, "model_status" : "A", } { "_id" : 1, "infodetails" : [ { "info_name

如何使用PHP在查询生成器中执行MongoDB连接等效。 是否有连接集合的方法。 我认为如果我们将集合col1中的“\u id”的值放到集合col2中的另一个“model\u id”中

“col1集合是普通文档,col2集合是嵌入文档”

示例集合:-

col1:

{
    "_id" : 1,
    "model_status" : "A",
}
{
    "_id" : 1,
    "infodetails" : [ 
        {
            "info_name" : "test",
        }
    ],    
    "test_model" : [ 
        {
            "model_id" : "2",
            "model_name" : "B",
        }, 
        {
            "model_id" : "3",
            "model_name" : "C",
        }, 
        {
            "model_id" : "1",
            "model_name" : "A",
        }
    ]
}
col2:

{
    "_id" : 1,
    "model_status" : "A",
}
{
    "_id" : 1,
    "infodetails" : [ 
        {
            "info_name" : "test",
        }
    ],    
    "test_model" : [ 
        {
            "model_id" : "2",
            "model_name" : "B",
        }, 
        {
            "model_id" : "3",
            "model_name" : "C",
        }, 
        {
            "model_id" : "1",
            "model_name" : "A",
        }
    ]
}

解决我的上述问题,这将完美地工作

======
Query:-
======
require_once(MONGODBPATH);
$mdb = mongoConnection::getMongoConnection();
$col2 = $mdb->selectDB("DB")->selectCollection("col2");
$ops =  array(
            array(
                '$project' => array(
                                "_id" => 1,
                                "test_model"   => 1,
                            )
            ),
            array('$unwind' => '$test_model'),
            array(
                '$lookup' => array(
                                'from'=>'col1',
                                'localField'=> "test_model.model_id",
                                'foreignField' => "_id",
                                'as'=> "result_foreignField"
                            )
            ),
        );
$results = $col2->aggregate($ops);

=========
Output:-
=========
Array
(
    [waitedMS] => 0
    [result] => Array
        (
            [0] => Array
                (
                    [_id] => 1
                    [test_model] => Array
                        (
                            [model_id] => 1
                            [model_name] => A
                        )

                    [result_foreignField] => Array
                        (
                            [0] => Array
                                (
                                    [_id] => 1
                                    [model_status] => A
                                )

                        )

                )
        )

    [ok] => 1
)

任何人都知道上述问题的解决方案。