Мне нужно получить информацию о 2 разных коллекциях в MongoDB, используя драйвер PHP mongo.
Я знаю, что недавно Университет Монго добавил новую функцию под названием «поиск», но я не знаю, как применить эту опцию в методе php mongo find (). (Кажется, что не готов к PHP)
В любом случае, что может быть лучшим вариантом для получения информации из более чем коллекции?
Создать временную коллекцию, добавляя информацию из каждой коллекции?
Loopkup — это этап конвейера для структуры агрегации.
Вы можете использовать его как этап в aggregate
метод сбора. Проверить php doc об этом здесь.
Как пример, ссылаясь на примерные данные документа здесь Вы можете попробовать следующий код:
$m = new MongoClient("localhost");
$c = $m->selectDB("examples")->selectCollection("orders");
$ops = array(
array(
'$lookup' => array(
'from' => 'inventory',
'localField' => 'item',
'foreignField' => 'sku',
'as' => 'inventory_docs'
)
);
$results = $c->aggregate($ops);
Надеюсь это поможет
Других решений пока нет …