Попробуйте сделать что-то вроде этого:
db.getCollection('collectionName').find({'ArrayName.1': {$exists: true}})
1 - это номер, если вы хотите получить запись больше 50, а затем ArrayName.50 Спасибо.
a. Рассмотрите изменения бэкенда оптимизации через прокси, который делает его собственное уведомление или орудование шестами: это знает, грязны ли какие-либо из данных, и будет быстрый возврат (а-ля 304) если нет.
b. Часто, пользователи смотрят больше, чем они затрагивают. Рассмотрите один уровень обновления для взгляда и другого, когда они запустят и продолжат редактировать.
Взгляд на BuzzWord: это соединяет редактирование, но также и автоматически сохраняет и часто разблокировало.
Удачи
Если бы Вы не можете использовать обменивающийся сообщениями протокол в BlazeDS, то я должен был бы согласиться, что необходимо сделать RTMP, опрашивающий по HTTP. Данные сжаты при использовании RTMP в AMF, который помогает вещам скорости встать, таким образом, клиент долго ждет между обновлениями. Это также позволило бы Вам позже увеличиваться к методам нажатия, если клиент продукта решает заплатить для дополнительного оборудования и лицензий.
В прошлом я пошел с выбором "a". При использовании Удаленных объектов, Вы могли бы установить некоторую логику стиля кэша для хранения их в синхронизации на удаленном конце.
Sam
Вам не нужны Livecycle и RTMP, чтобы иметь механизм уведомления, можно сделать это с каналами от BlazeDS и использовать стратегию опроса потоковой передачи / длинную стратегию опроса
Разве Вы не можете использовать RTMP по HTTP (Опрос HTTP)? Тем путем можно все еще использовать RTMP, и хотя это намного медленнее, чем реальный RTMP, можно все еще широковещательно передать, обновляет этот путь.
У нас есть приложение, которое использует RTMP для передачи сигналов, вставляет, обновляет и удаляет путем простой широковещательной передачи сообщений RTMP, содержащих пару Table/PrimaryKey, оставляя приложение для автоматического обновления это - данные. Мы делаем это по Http с помощью RTMP.
Я нашел эту статью о синхронизации:
http://www.databasejournal.com/features/sybase/ article.php / 3769756 / The-Missing-Sync.htm
Это не входит в технические детали, но вы можете догадаться, какой тип кодирования будет реализовывать эту стратегию.
У меня также нет причудливых уведомлений от моих server, поэтому мне нужны стратегии синхронизации.
Например, у меня есть список компаний в моем modelLocator. Он не меняется очень часто, он недостаточно велик, чтобы учитывать разбиение на страницы, я не хочу перезагружать его все (removeAll ()) при каждом действии пользователя, но я не хочу, чтобы мое приложение вылетало или ОБНОВЛЯЕМ поврежденные данные в если он был ОБНОВЛЕН или УДАЛЕН из другого экземпляра приложения.
Сейчас я сохраняю в СЕССИИ дату и время SELECT. Когда я возвращаюсь для обновления данных, я ВЫБИРАЮ WHERE last_modified> $ SESSION ['lastLoad']
Таким образом я получаю только строки, измененные после загрузки данных (в большинстве случаев 0 строк).
Очевидно, что вам нужно на UPDATE last_modified при каждом INSERT и UPDATE.
Для DELETE это сложнее. Как отмечает парень в своей статье: «Как мы можем отправить запись, которая больше не существует»
Вам необходимо указать Flex, какой элемент следует удалить (например, по идентификатору), чтобы вы не могли УДАЛИТЬ при УДАЛЕНИИ:)
Когда пользователь удаляет компанию, вы вместо этого выполните ОБНОВЛЕНИЕ: удалено = 1 Затем при обновлении компаний для строки, в которой удалено = 1, вы просто отправляете обратно идентификатор для гибкости, чтобы убедиться, что эта компания больше не участвует в модели.
И последнее, но не менее важное: вам нужно написать функцию, которая чистые строки, где удаленный = 1 и last_modified старше, чем ... 3 дня или как вы думаете, что вам подходит.
Хорошо то, что если пользователь удаляет строку по ошибке, она все еще находится в базе данных, и вы можете сохранить ее из реальное удаление в течение 3 дней.