Я новичок в концепции Mongodb.
Я пытаюсь получить документы из одной коллекции в MongoDB через PHP Phalcon ODM и, более конкретно, «агрегатный» метод Phalcon \ Mvc \ Collection. MySQL-эквивалент того, что я пытаюсь сделать, выглядит следующим образом:
SELECT * FROM nodes WHERE timestamp >= X AND timestamp < Y AND user_id = 25
AND (type = "classic" OR type = "new")
Это довольно просто (для MySQL)
Документация MondoDB помогает, но понимание того, что Phalcon ожидает для ввода в «агрегатный» метод, кажется мне неясным при чтении этого https://docs.phalconphp.com/en/latest/reference/odm.html#aggregations
Я также попробовал метод «найти» в Phalcon \ Mvc \ Collection, но он либо выдает ошибки, либо возвращает документы, которые не соответствуют условиям.
Вы не дали ни одного пробного кода, что немного затрудняет понимание того, чего вы пытаетесь достичь. Тем не менее, что-то вроде этой работы?
$nodes = NodesCollection::find([
[
'timestamp' => [
'$gte' => X,
'$lt' => Y
],
'user_id' => 25
]
]);
Ключевым моментом, который следует отметить из этого примера, является использование операторов сравнения Mongo.
Вы можете узнать больше об этом здесь: https://docs.mongodb.com/manual/reference/operator/query-comparison/
Других решений пока нет …