/** * {inheritdoc}. */ protected function applyCriteria(QueryBuilder $queryBuilder, array $criteria = null) { if (null === $criteria) { return; } foreach ($criteria as $property => $value) { if (is_array($value)) { $queryBuilder->field($this->getPropertyName($property))->in($value); } elseif ('' !== $value) { $queryBuilder->field($this->getPropertyName($property))->equals($value); } } }
/** * @param \Doctrine\MongoDB\Query\Builder $queryBuilder * @param \Doctrine\ODM\MongoDB\Mapping\ClassMetadata $classMetadata * @return \Doctrine\MongoDB\Query\Builder */ public function primeFields(Builder $queryBuilder, ClassMetadata $classMetadata) { $relationsConfig = $this->getRelations(); foreach ($relationsConfig->getChildrenKeys() as $field) { if (!$this->canPrimeField($classMetadata, $field)) { continue; } $queryBuilder->field($field)->prime($this->createFieldPrimer([$field])); } return $queryBuilder; }
/** * @param QueryBuilder $queryBuilder * @param array $criteria */ protected function applyCriteria(QueryBuilder $queryBuilder, array $criteria = array()) { foreach ($criteria as $property => $value) { $queryBuilder->field($property)->equals($value); } }
/** * Set the current field to operate on. * * @param string $field * @return self */ public function field($field) { $this->currentField = $field; parent::field($field); return $this; }
/** * Apply the query part to search for product where the completenesses * are missing. Apply only to the channel or product if provided. * * @param Builder $productsQb * @param ProductInterface $product * @param ChannelInterface $channel */ protected function applyFindMissingQuery(Builder $productsQb, ProductInterface $product = null, ChannelInterface $channel = null) { if (null !== $product) { $productsQb->field('_id')->equals($product->getId()); } else { $combinations = $this->getChannelLocaleCombinations($channel); if (!empty($combinations)) { foreach ($combinations as $combination) { $expr = new Expr(); $expr->field('normalizedData.completenesses.' . $combination)->exists(false); $productsQb->addOr($expr); } } } $productsQb->field('family')->notEqual(null); }
/** * @param QueryBuilder $queryBuilder * * @param array $criteria */ protected function applyCriteria(QueryBuilder $queryBuilder, array $criteria = null) { if (null === $criteria) { return; } foreach ($criteria as $property => $value) { $queryBuilder->field($property)->equals($value); } }