cosmosdb sql api против api mongodb, который использовать для моего сценария. - PullRequest
0 голосов
/ 19 октября 2018

У меня есть документ с именем "chat"

 "Chat": [
        {
          "User": {},
          "Message": "i have a question",
          "Time": "06:55 PM"
        },
        {
          "User": {},
          "Message": "will you be able to ",
          "Time": "06:25 PM"
        },
        {
          "User": {},
          "Message": "ok i will do that",
          "Time": "07:01 PM"
        }

каждый раз, когда приходит новое сообщение чата, я должен иметь возможность просто добавить этот массив.

конвейер агрегации mongodb API (предварительный просмотр) позволяет мне использовать такие вещи, как $ push $ addToSet для этого

если я использую sql api, мне придется каждый раз извлекать весь документ, изменять его и создаватьновый документ каждый раз.

Другие соображения: Этот массив может быстро расти.Этот документ «чата» также может быть вложен в другой документ.

Мой вопрос Значит ли это, что mongodb API лучше подходит для этого и sql api будет иметь снижение производительности для этого сценария?

1 Ответ

0 голосов
/ 19 октября 2018

Значит ли это, что mongodb API лучше подходит для этого, и sql api будет иметь снижение производительности для этого сценария?

Трудно сказать, какая база данных является лучшим выбором.

Да, как указано в doc , Cosmos Mongo API поддерживает $push и $addToSet, что более эффективно.Однако на самом деле Cosmos Mongo API просто поддерживает подмножество функций MongoDB и переводит запросы в SQL-эквивалент Cosmos.Так что, возможно, у Cosmos Mongo API есть несколько вариантов поведения и результатов.Но ответственность за улучшение эмуляции MongoDB лежит на API Cosmos Mongo.

Когда дело доходит до Cosmos Sql Api, частичное обновление пока не поддерживается, но идет по дороге.Вы можете оставить отзыв здесь .В настоящее время вам необходимо обновить весь документ.Конечно, вы можете использовать хранимую процедуру , чтобы выполнить эту работу, чтобы снять давление со стороны вашего клиента.

Следующее, что я хочу сказать, что является наиболее важным, это ограничение, упомянутое@David.Размер документа имеет ограничение 2 МБ в sql api и 4 МБ в mongo api: Каков предел размера элемента cosmosdb? .Поскольку ваши данные чата растут, вам нужно подумать о том, чтобы разделить их.Затем дайте документам ключ раздела, такой как "type": "chatdata", чтобы классифицировать их.

...