Допустим, у нас есть две коллекции: коллекция пользователей и коллекция элементов.
Коллекция пользователей, в каждом документе пользователя хранятся идентификаторы продуктов покупки пользователя.
{
"id" : "UserA",
"PurchasedProductId" : ["ProductId1", ... "ProductIdNN"]
}
Коллекция предметов, каждый документ Item хранит информацию о продукте.
{
"Id" : "ProductId1"
}
Я хочу, чтобы запрос возвращал первые 10 элементов коллекции элементов, упорядоченных по времени последнего обновления, плюс, если пользователь уже приобрел элемент ранее, запрос должен пропустить приобретенный пользователем элемент и вернуть не купленный только предмет.
В MsSQL мы могли бы просто НЕ СУЩЕСТВОВАТЬ, как нам эффективно это сделать в documentDB?
Как нам это сделать в documentDB?
Я могу представить, конечно, что мы можем пройти как
SELECT * WHERE (c.id != id1 && c.id != id2 && ..... c.id != idNNNN) LIMIT 10
Но на самом деле, если каждый пользователь купил более 500 предметов, это даже эффективно?
Какой эффективный способ сделать это?