Как получить последние N документов из вложенного массива в MongoDB?Php

Кемеровские программисты php общаются здесь
Ответить
Гость
 Как получить последние N документов из вложенного массива в MongoDB?

Сообщение Гость »


Исходный документ «чат». Сообщения, хранящиеся в массиве «messages»:

{ "_id": ObjectId("65d64029a16e5d5a9d00f1e6"), "name" : "Чат без названия", "Сообщения" : [ { "_id": ObjectId("65dfbba726752480ef0c4167"), "текст" : "сообщение 1" }, { "_id": ObjectId("65dfbba726752480ef0c4167"), "текст" : "сообщение 2" } ]} Я пытаюсь получить последние N сообщений из этого массива. Я также хочу применить параметры ограничить и пропустить.

Изначально я использовал отдельный сбор сообщений. И мой вопрос был:

$cursor = $DB->messages->find( ['_id' => новый MongoDB\BSON\ObjectID($cid)], ['sort' => ['_id' => -1], 'limit' => $limit, 'skip' => $skip] ); После нескольких попыток использования различных вариантов агрегата() и find() я так и не нашел решения.

Язык — PHP. Драйвер MongoDB + Атлас MongoDB.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»