Я бьюсь с минимальным запросом в MongoDB.Возможно, это неправильный способ получения ожидаемого результата, но, пожалуйста, помогите мне, что я делаю неправильно.
Давайте предположим, что у нас есть такие данные:
{ "version": 1, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 1, "id": "789-987", "type":"ChangeEvent", "data":"aaa" }
{ "version": 2, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 2, "id": "789-987", "type":"ChangeEvent", "data":"aaa" }
{ "version": 3, "id": "123-456", "type":"AnotherEvent", "data":"aaa" }
{ "version": 4, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 5, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 6, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 7, "id": "123-456", "type":"AnotherEvent", "data":"aaa" }
{ "version": 8, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 3, "id": "789-987", "type":"ChangeEvent", "data":"aaa" }
{ "version": 9, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
Итак, у меня есть дваразные идентификаторы и два разных типа.То, что мне нужно получить, это только id "123-456"
данные из последних "AnotherEvent"
, включая.
Это означало бы,
{ "version": 7, "id": "123-456", "type":"AnotherEvent", "data":"aaa" }
{ "version": 8, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
{ "version": 9, "id": "123-456", "type":"ChangeEvent", "data":"aaa" }
Я думал, что использование минимального курсора поможет мне, конкретно этоquery:
db.data.find({id: '123-456'}).max( { id: '123-456', type: 'AnotherEvent' } ).hint( { id: 1, type: 1 }).pretty()
Возможно ли это событие выполнить непосредственно на стороне Mongo посредством запроса?
Большое спасибо.