#php #mongodb
#php #mongodb
Вопрос:
итак, мой mongodb выглядит так:
{
"_id" : ObjectId("60004358bd500000d3006cb3"),
"Name" : "Tsakiris",
"VAT" : "099360123",
"DOY" : "----",
"Address" : "some street",
"TEL" : "2109750115",
"Products" : [
{
"pID" : "099360123/1",
"pNAME" : "Nike Air Force",
"pPRICE" : "95",
"pBRAND" : "Nike",
"pDESCRIPTION" : "50% green eco frindly",
"pCATEGORY" : "Trainers",
"pDEPARTMENT" : "Men/Shoes/Trainers",
"pTHUMBNAIL" : "http://127.0.0.1/pricedoc/assets/img/products/p1.jpg"
},
{
"pID" : "099360123/2",
"pNAME" : "Renato Garini boots",
"pPRICE" : "150",
"pBRAND" : "Renato Garini",
"pDESCRIPTION" : "autumn collection boot 2020",
"pCATEGORY" : "Βoot",
"pDEPARTMENT" : "Men/Shoes/Βoot",
"pTHUMBNAIL" : "http://127.0.0.1/pricedoc/assets/img/products/p2.jpg"
}
],
"nextProductCounter" : 3
}
Я пытаюсь выбрать данные с помощью php
$options = ["typeMap" => ['root' => 'array', 'document' => 'array']];
$m = new MongoDBClient("mongodb://127.0.0.1/", [], $options);
//$m= new MongoDBClient ("mongodb://127.0.0.1/");
$db = $m->stores;
$collection = $db->storeinfo;
$pID = $VAT."/1";
$products = $collection->findOne(array("Products.pID" => $pID));
//var_dump($products);
foreach ($products as $product) {
echo $product;
}
Но у меня есть уведомление: преобразование массива в строку в
D:xampphtdocspricedocassetsincludeslibrary.php
Итак, я попытался преобразовать его в json и выполнить поиск в строке json, но по-прежнему ничего.
Я перепробовал много вещей, которые нашел в Интернете, но, похоже, я застрял. Есть ли способ получить переменные продукта?
пример:
echo $product[Product.pID]; //output => 099360123/1
echo $product[Product.pName]; //output => Nike Air Force
Комментарии:
1. Раскомментировать
var_dump($products);
. Что это показывает?
Ответ №1:
Я не знаю MongoDB или что он возвращает, но вам, вероятно, нужно выполнить цикл Products
. Учитывая, что JSON, они будут объектами:
foreach ($products->Products as $product) {
echo $product->pID; //output => 099360123/1
echo $product->pName; //output => Nike Air Force
}
Или если возвращаются массивы:
foreach ($products['Products'] as $product) {
echo $product['pID']; //output => 099360123/1
echo $product['pName']; //output => Nike Air Force
}
Или какая-то комбинация или два. Ваш var_dump($products);
покажет вам, если вы его раскомментируете.
Комментарии:
1. Большое вам спасибо!!