Laravelのwhereを使って条件を絞りこみ商品を検索したいのですが、うまくいきません。
DBはmongoDBを使っています。
6件あるはずなのに4件しかとれない(同じproduct->_idは無視されている?)
foreach($products as $product) { $productDetails = Resource::schema('$product->_id) ->where('productId', new \MongoDB\BSON\ObjectId($product->_id)) ->get(); }
以下だとうまくいきます。(6件とも取れる)
foreach($products as $product) { $productDetails = Resource::schema('$product->_id) ->where('productId', 'xxxxxxxxxxxxxxx') ↑ //オブジェクトIDを直接記述 ->get(); }
記述で変わっているのはここぐらいだと思います。
(productDetailsは親の$product->_idを持ちます。その中で同じ$product->_idを持っているproductDetailがいくつかあります。
var_dump等を使いnew \MongoDB\BSON\ObjectId($product->_id)には意図した値が入っているのは確認済みです。
どうやら同じオブジェクトID(今回は$product->_id)のものは無視されてしまっているように思われるのですが、(もしくは上書きされている?)同じ$product->idのものも含めて全件取得するにはどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。