Код: Выделить всё
db.getCollection('queues').find({
$and:[
{queue: 'testo'},
{$or: [
{$and: [{reserved_at: null}, {available_at:{'$lte':1490323024}}]},
{reserved_at:{'$lte':1490323024}}
]}
]
});
Код: Выделить всё
Can't canonicalize query: BadValue $or/$and/$nor entries need to be full objects.
Код: Выделить всё
$builder = $this->get('doctrine_mongodb')->getManager()->createQueryBuilder('AppBundle:Ticket');
$builder->findAndUpdate()->addAnd([
$builder->field('queue')->equals($queue),
$builder->addOr([
$builder->addAnd([
$builder->field('reservedAt')->equals(null),
$builder->field('availableAt')->lte($currentTime)
]),
$builder->field('reservedAt')->lte($expiration)
])
])
->sort('id', 'ASC')
->limit(1)
->field('reservedAt')->set($currentTime->getTimestamp());
$job = $builder->getQuery()->execute()->toArray();
Подробнее здесь: https://stackoverflow.com/questions/429 ... ll-objects